Laboratorio # 3

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 5

LABORATORIO N° 03

Asignatura : Base de Datos

Sjfhsjh
Sggsgs
Sgsdh
Sd
Hh

SQL – JoinTables, SubConsultas, Agrupando y Sumarizando Data

I. OBJETIVO
Manipular datos desarrollando destrezas en el uso del lenguaje SQL..

II. EQUIPOS Y MATERIALES


o Computadora personal
o Software SQL Server Enterprise Manager
o Guía de Laboratorio.

III. METODOLOGIA Y ACTIVIDADES


3.1 Analice el siguiente diagrama entidad-relación que deberá crearse en una Base
de Datos a llamarse LAB03.

P ROFES OR
# * pro_numero
* pro_nombre
* pro_direccion
* pro_salario
* pro_salarioAcumulado
* pro_grado
* pro_especialidad
* pro_rango
* pro_dependientes

3.2 Cree la base de datos LAB03 por defecto.


Primero levante la instancia del SGBD
Nota.-
El nombre del servidor es el numero de su
máquina (en este ejemplo 105-25), la
autenticación será la de Windows, el nombre de
usuario en este laboratorio será sa y la sist
Contraseña será sistemas . em
as
Luego, Vaya al
toolbar y haga click
en el ícono de
“consulta de motor
de base de datos”.
Se abrirá una
ventana para
ingresar el query.

Escriba las siguientes sentencias SQL.


Create database LAB03
use LAB03

3.3 Cree las tablas e incluya restricciones de llaves primarias y foráneas.


CREATE TABLE DEPARTAMENTO (
dep_numero int NOT NULL,
dep_nombre VARCHAR(25) NOT NULL,
dep_localización VARCHAR(15),
CONSTRAINT dep_numero_pk PRIMARY KEY (dep_numero) )

CREATE TABLE ASEGURADORA (


ase_numeroPlan int NOT NULL,
ase_descripcion VARCHAR(15) NOT NULL,
CONSTRAINT ase_numeroPlan_pk PRIMARY KEY (ase_numeroPlan) )

CREATE TABLE PROFESOR (


pro_numero int NOT NULL,
pro_nombre VARCHAR(25) NOT NULL,
pro_direccion VARCHAR(20),
pro_salario decimal(7,2),
pro_salarioAcumulado decimal(9,2),
dep_numero int NOT NULL,
pro_grado VARCHAR(3),
pro_especialidad VARCHAR(12),
pro_rango VARCHAR(4) NOT NULL,
ase_numeroPlan int,
pro_dependientes CHAR(1),
CONSTRAINT pro_departamento_fk FOREIGN KEY (dep_numero)
REFERENCES DEPARTAMENTO (dep_numero),
CONSTRAINT pro_aseguradora_fk FOREIGN KEY (ase_numeroPlan)
REFERENCES ASEGURADORA (ase_numeroPlan),
CONSTRAINT pro_numero_pk PRIMARY KEY (pro_numero) )

CREATE TABLE CONFERENCIA (


pro_numero int NOT NULL,
conf_id int NOT NULL,
conf_titulo VARCHAR(25) NOT NULL,
conf_cuentasVeces int,
conf_ultimaVez DATETIME NOT NULL,
CONSTRAINT pro_numero_fk FOREIGN KEY (pro_numero)
REFERENCES PROFESOR (pro_numero),
CONSTRAINT conf_pk PRIMARY KEY (pro_numero, conf_id) )

CREATE TABLE HISTORIAL (


pro_numero int NOT NULL,
hist_id int NOT NULL,
hist_rango VARCHAR(4) NOT NULL,
hist_fechaRango DATETIME NOT NULL,
CONSTRAINT pro_numero2_fk FOREIGN KEY (pro_numero)
REFERENCES PROFESOR (pro_numero),
CONSTRAINT hist_pk PRIMARY KEY (pro_numero, hist_id) )
3.4 Popular las tablas: Inserte datos a las tablas teniendo en cuenta las restricciones
pre-establecidas.
-- Datos de la tabla DEPARTMENTO
INSERT INTO DEPARTAMENTO VALUES (2,'Physics','Edificio 100')
INSERT INTO DEPARTAMENTO VALUES (5,'Computer Science','Edificio 100')
INSERT INTO DEPARTAMENTO VALUES (7,'Geology','Edificio 200')
-- Datos de la tabla ASEGURADORA
INSERT INTO ASEGURADORA VALUES (1,'Triple-Azul')
INSERT INTO ASEGURADORA VALUES (2,'Cruz SSS')
INSERT INTO ASEGURADORA VALUES (4,'Extra')
-- Datos de la tabla PROFESOR
INSERT INTO PROFESOR VALUES (119,'Nelliud Torres','Bayamón',
70100.00,890900.00,5,'MS','Information','Asst',1,1)
INSERT INTO PROFESOR VALUES (120,'José Díaz','Carolina',
69000.69,789000.00,5,'MS','Engineer','Asso',2,1)
INSERT INTO PROFESOR VALUES (201,'Alz Heimer','Cayey',
55500.10,324000.00,7,'PhD','Geology','Full',1,0)
INSERT INTO PROFESOR VALUES (204,'Park Inson','Caguas',
27390.00,89000.25,2,'PhD','Physics','Asst',1,1)
-- Datos de la tabla CONFERENCIA
INSERT INTO CONFERENCIA VALUES (120,1,'El Tarot ',3,'6-Jun-2004')
INSERT INTO CONFERENCIA VALUES (119,1,'Base de Datos',5,'6-May-2004')
INSERT INTO CONFERENCIA VALUES (119,2,'Usando Access',1,'7-Feb-2005')
-- Datos de la tabla HISTORIAL
INSERT INTO HISTORIAL VALUES (119,1,'Asst','1-May-1990')
INSERT INTO HISTORIAL VALUES (120,1,'Asso','1-Jun-1991')
INSERT INTO HISTORIAL VALUES (120,2,'Full','1-Jul-2001')
INSERT INTO HISTORIAL VALUES (204,1,'Asst','15-Feb-04')

3.5 SE PIDE: Elabore los querys correspondientes a los siguientes requerimientos:.


UNIENDO TABLAS CON JOIN TABLES
1. Hacer una lista con los nombres de los profesores y el nombre del departamento al cual
pertenece cada uno.
select p.pro_numero,p.pro_nombre,d.dep_nombre
from profesor p
inner join departamento d on p.dep_numero=d.dep_numero
2. Hacer una lista con los nombres de los profesores, el nombre del departamento al cual
pertenece cada uno y el nombre del tipo de plan médico que tiene cada uno.

3. Dar el número y el nombre de todos los profesores del departamento de geología.


4. Hacer una lista con el nombre de todos los profesores que tengan un plan de seguro tipo
Regular.
5. Hacer una lista de profesores con descripción del plan de seguro y que tengan
dependientes cubiertos. Ordenar la lista por nombre de profesor.
6. ¿Cuántos profesores hay en el departamento de física?
7. ¿A cuánto asciende el total de salarios para los profesores de matemáticas?
8. ¿A cuál departamento pertenece el profesor con el salario más bajo?
QUERIES ANIDADOS
9. ¿Qué número de departamento tiene el profesor con el salario más bajo?
10. Select top 1 p.dep_numero,d.dep_nombre from profesor p
11. inner join departamento d on p.dep_numero=d.dep_numero
12. where pro_salario=(select min(pro_salario) from profesor)
13. ¿Cómo se llama el profesor con el salario más alto?
14. Hacer una lista con el número y el nombre de todos los profesores que hayan dado una
misma conferencia más de dos veces.
15. ¿Cuántas veces se ha dado y que título tiene la conferencia que se ha ofrecido más veces?

AGRUPAMIENTO (USANDO MÁS DE UNA TABLA)


16. Hacer una lista con el nombre de los profesores que han dado conferencias y el número de
conferencias que ha dado cada uno. Ordenar alfabéticamente por nombre.

17. Hacer una lista con el nombre de cada departamento y la cantidad de profesores que
pertenecen al mismo. Ordenar alfabéticamente por nombre.
18. Hacer una lista con el nombre de los profesores que han dado más de tres conferencias y
el número de conferencias que ha dado cada uno. Ordenar alfabéticamente por nombre.

Consultas extras:

También podría gustarte