Practica 3
Practica 3
Practica 3
PRACTICA 3
Primera Parte: REGLAS, DEFAULTS, TDUS
Segunda Parte: VISTAS, INDICES Y BATCH
NOMBRES:
CODIGOS:
1. Crear una tabla empleado con los siguiente atributos: cedula, nombre,
primer_apellido, segundo_apellido, edad, ciudad_nto y estado_civil. La
llave primaria es la cedula, y estado civil tiena un default de “soltero”
1
9. ¿Qué sucede con los nuevos datos insertados cuando no se le indica la
ciudad? ¿Qué sucede cuando se inserta un registro en empleado con edad de
70?
10.Crear un TDU llamado País con valor por defecto “Colombia”, y crear una
tabla llamada Producto donde uno de los atributos sea Pais_origen. Este
atributo debe tener comop tipo de dato el TDU país.
11.Insertar datos a la tabla producto, con registros sin país de origen y con
país de origen.
VISTAS
(implementar en MySQL y en MSqlServer o Sybase)
2
2.1 Crear la tabla T2, insertar un registro y ver la tabla:
CREATE TABLE T2 (cantidad INT, precio INT, valor INT);
INSERT INTO T2 VALUES(5, 50, cantidad *precio);
2
2.2 Crear la siguiente vista
CREATE VIEW v2 AS SELECT cantidad, precio FROM T2;
¿Que información esta guardando la vista?
¿Qué ocurre con los datos de la vista y de la tabla original(que sucede con
valor)? ¿Por qué?
3.
3.1 Modificar la vista v (la creada en el punto1):
UPDATE v SET cantidad = 50 where precio =50;
3.2 ¿Qué ocurre con la vista y la tabla original(que sucede con valor)? ¿Por
qué?
4.
4.1 Crear la tabla
4.2 Insertar:
INSERT INTO autor ( nombre, apellido, edad) VALUES ( 'Jose', 'Diaz', 23);
INSERT INTO autor ( nombre, apellido, edad) VALUES ( 'Juan', 'Lopez', 20);
INSERT INTO autor ( nombre, apellido, edad) VALUES ( 'Jose', 'Marin', 27);
INSERT INTO autor ( nombre, apellido, edad) VALUES ( 'Maria', 'Suarez', 30);
INSERT INTO autor ( nombre, apellido, edad) VALUES ( 'Ana', 'Garcia', 15);
3
4.3 Crear la vista
4.5 Insertar:
INSERT INTO view_autor1 (apellido, edad) VALUES ( 'Paez', 35);
¿El INSERT fue hecho? ¿Por qué? Mostrar datos de la vista y tabla autor
4.6 Insertar:
INSERT INTO view_autor1 (nombre, apellido) VALUES ( 'Gloria', 'Perez');
¿El INSERT fue hecho? ¿Por qué? Mostrar datos de la vista y tabla autor
INDICES
(implementar en MySQL y en MSqlServer o Sybase)
1. Hacer una consulta sobre la tabla municipi: Seleccionar todos los campos
cuando poblacio2003 es mayor que 100000 y menor que 500000.
4
Cuanto tiempo gasto la consulta (segundos que aparecen después de mostrar el
resultado)?
3. Hacer la misma consulta del punto 1 ¿Cuanto tiempo gasto? ¿El tiempo es menor
o mayor que el tiempo dado en el punto 1? ¿Por que es menor o mayor?
5.
5.1
CREATE TABLE empleado (emple_id INT NOT NULL PRIMARY KEY,
nombre VARCHAR(10),
edad INT,
sexo CHAR(1),
INDEX ind_nombre (nombre)
);
¿Que hace la sentencia anterior?
5.2
ALTER TABLE empleado
DROP INDEX ind_nombre;
5
5.3 Adicionar un índice en la columna apellido de la tabla autor usando ALTER
TABLE (escribir sentencia SQL y descripción de la tabla)
5.4 Borrar el indice creado en 5.3 usando ALTER TABLE (escribir sentencia SQL y
descripción de la tabla)
BATCH
(implementar en MySQL y en MSqlServer o Sybase)
1. Crear una tabla libro con los siguientes atributos:
id_libro char (6)
titulo varchar (30)
precio double
tipo varchar(10)
6
2. Insertar datos. Un libro debe tener id = BU2075
3. Ejecutar las siguientes sentencias en batch. Si las sentencias fallan dar
la razon porla que ocurre la falla.
declare @myvariable int
select @myvariable = titulo
from libro
where id_libro = "BU2075"
select @myvariable
4. Ejecutar la siguientes sentencias en batch
delete from titles where tipo = "popular"
select @@rowcount
Cual fue el resultado del select? Por que?
5. Borrar una tabla inexistente, ¿cual es el numero y tipo de error que se
genera?
6. Ejecutar un borrado de una tabla con una condición que nunca se cumple.
¿Cual es el número y tipo de error que se genera?
7. Implementar las sentencias en batch : Borrar de la tabla libros los libros
de tipo “cocina”. Generar un mensaje que indique si filas no fueron borradas,
si se borro solo una fila, o si se borraron múltiples filas.
8. Implementar las sentencias en batch: Incrementar el precio de los libros en
2.000 hasta que el promedio del precio del los libros sea mayor que 50.000
9. Mientras que el promedio de los libros es mayor que 30.000 reducir los
precios de los libros por la mitad. Sin embargo, si el máximo precio cae por
debajo de 80.000 el ciclo es terminado.
10. Si existen libros con el precio mayor que 60.000 reducir el precio en 10%
sino mostrar un mensaje que indique que el precio de todos los libros estaba
por debajo de 60.000
11 Implementar, corregir si hay errores (de sintaxis o declaración de
variables), y explicar que hace el siguiente batch:
while @price < $20.00
begin
select @price = @price + $1.00
if (select count(price) from titles
where price = @price) >= 5
continue
else
update titles
set price = price * $1.10
where price = @price
end
7
8