Practica3

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Practica3 as PDF for free.

More details

  • Words: 1,327
  • Pages: 8
BASES DE DATOS PRACTICA 3 Primera Parte: REGLAS, DEFAULTS, TDUS Segunda Parte: VISTAS, INDICES Y BATCH NOMBRES: CODIGOS:

REGLAS, DEFAULTS, TDU

(Reglas, defauls y TDUs implementar en microsoft SQL Server o SYBASE) Las sentencias deben ser escritas después de c/u de las preguntas 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”

2. Insertar 5 registros a la tabla. Por lo menos un registro insertado no debe tener valor en estado civil.

3. Crear una tabla vendedor con los siguientes atributos: id_vendedor, nombre, apellido, ciudad. La llave primaria es id_vendedor

4. Crear una regla donde un atributo solo acepte valores entre 18 y 60

5. Crear un default con “Bogota”

6. Asignar la regla al campo edad de la tabla empleado

7. Asignar el default al campo ciudad de vendedor y al campo ciudad_nto del empleado 8. Insertar nuevamente registros a empleado y vendedor

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) 1 1.1 Crear la tabla t, insertar un registro y ver la tabla: CREATE TABLE t (cantidad INT, precio INT); INSERT INTO t VALUES(3, 50); SELECT * FROM t;

1.2. Crear la siguiente vista CREATE VIEW v AS SELECT cantidad, precio, cantidad*precio AS valor FROM t; ¿Que información esta guardando la vista?

1.3. Consultar la vista. ¿Cual es el resultado? SELECT * FROM v;

1.4 Insertar 2 registros a la tabla t INSERT INTO t VALUES(2, 100); INSERT INTO t VALUES(5, 80); 1.5. Consultar la vista. Cual es el resultado? SELECT * FROM v;

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?

2.3. Consultar la vista. ¿Cual es el resultado?

2.4 Modificar la vista: UPDATE v2 SET cantidad = 20 WHERE valor =50; ¿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é? 3.3 Borrar la vista v

4. 4.1 Crear la tabla CREATE TABLE autor( autor_id integer(2) nombre varchar(10) apellido varchar(10) edad integer(3) );

NOT NULL AUTO_INCREMENT PRIMARY KEY , NULL, NOT NULL, NULL

4.2 Insertar: INSERT INSERT INSERT INSERT INSERT

INTO INTO INTO INTO INTO

autor autor autor autor autor

( ( ( ( (

nombre, nombre, nombre, nombre, nombre,

apellido, apellido, apellido, apellido, apellido,

edad) edad) edad) edad) edad)

VALUES VALUES VALUES VALUES VALUES

( ( ( ( (

'Jose', 'Diaz', 23); 'Juan', 'Lopez', 20); 'Jose', 'Marin', 27); 'Maria', 'Suarez', 30); 'Ana', 'Garcia', 15);

¿Qué autor_id tiene Maria Suarez? ¿Por qué?

3

4.3

Crear la vista

CREATE VIEW view_autor1 AS SELECT nombre, apellido FROM autor; ¿Qué hace la vista?

4.4 Crear la vista CREATE VIEW view_autor2 AS SELECT CONCAT(nombre, CONCAT(' ',apellido)) AS nombre_completo FROM autor; ¿Qué hace la vista?

Ejecutar SHOW TABLES y describe view_autor1 y view_autor2;

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)?

2. Crear un indice sobre la columna poblacio2003 de la tabla municipi. El índice creado puede ser unique? ¿Por que? Si puede ser UNIQUE crear el indice de este tipo, si no usar tipo (dejar valor predeterminado) (escribir sentencia SQL) (Puede usar el comando HELP CREATE INDEX para ver la sintaxis)

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?

Mirar la descripción de la tabal: describe empleado; ¿Qué información tiene el campo nombre? ¿Por qué?

5.2

ALTER TABLE empleado DROP INDEX ind_nombre; ¿Que hace la sentencia anterior?

Mirar la descripción de la tabal: describe empleado; ¿Qué información tiene el campo nombre? ¿Por qué?

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)

5.5 Adicionar un índice en la columna apellido de la tabla autor usando CREATE INDEX de tipo UNIQUE (escribir sentencia SQL y descripción de la tabla)

5.6 Borrar el índice usado en 5.5 (escribir sentencia SQL y descripción de la tabla)

6. CREATE TABLE lookup (id INT, INDEX USING BTREE (id));

¿Que hace la sentencia anterior?

5.7 Adicionar un índice en la columna apellido de la tabla autor usando CREATE INDEX de tipo UNIQUE y usando la estructura BTREE (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

Related Documents

Practica3
October 2019 2
Practica3
October 2019 4
Practica3
May 2020 2
Practica3
November 2019 4
Practica3
October 2019 1
Practica3
November 2019 2