Vous êtes sur la page 1sur 7

Universidad Abierta Para Adultos.

Asignatura

Sistema de Base de Datos II

Facilitador

Tomas Franquelis Ramirez Perez


Participante

Emmanuel Antonio Beltré Silverio

Matricula

17-4219

Junio 12 del 2019


Santiago de Los Caballero
Realizar las siguientes consultas:

Consultas sobre una tabla

1. Devuelve un listado con el primer apellido, segundo apellido y el nombre de todos los
alumnos.

2. Devuelve el listado de los alumnos que nacieron en 1999.

3.

Consultas multitabla

1. Devuelve un listado con el nombre de las asignaturas, año de inicio y año de fin del
curso escolar del alumno con nif 26902806M.

2. Devuelve un listado con los datos de todas las alumnas que se han matriculado alguna
vez en el Grado en Ingeniería Informática (Plan 2015)

3. Devuelve un listado con los profesores que no están asociados a un departamento.

4. Devuelve un listado con todos los departamentos que no han impartido asignaturas en
ningún curso escolar.

5. Devuelve un listado con los departamentos que no tienen profesores asociados


CREATE
create database UNIVERSIDAD
USE UNIVERSIDAD

create table ESTUDIANTE(


ID_estudi INT NOT NULL UNIQUE,
nif varchar (10),
Cedula VARCHAR (11) NOT NULL UNIQUE,
Nombre VARCHAR (30) NOT NULL,
Apellido1 VARCHAR (40) NOT NULL,
Apellido VARCHAR (40),
Ciudad VARCHAR (50),
Direccion VARCHAR (50),
Telefono VARCHAR (12) NOT NULL,
F_nac DATE NOT NULL,
sexo varchar(1) NOT NULL CHECK (sexo IN ('M', 'F')))
alter table ESTUDIANTE
add primary key (ID_estudi)

create table DEPARTAMENTO(


ID_depart int identity (1,1) not null PRIMARY KEY,
nombre VARCHAR (50) not null);

create table PROFESOR(


ID_profe INT NOT NULL UNIQUE,
cedula VARCHAR (13) NOT NULL UNIQUE,
nombre varchar (30) NOT NULL,
apellido1 varchar (40) NOT NULL,
apellido2 varchar(40) NOT NULL,
ciudad varchar (50),
direccion varchar(50) NOT NULL,
telefono varchar(12) NOT NULL,
fecha_nacimiento date NOT NULL,
sexo varchar(2) NOT NULL CHECK (sexo IN ('M', 'F')),
ID_depart INT FOREIGN KEY REFERENCES DEPARTAMENTO (ID_depart))
alter table PROFESOR
add primary key (ID_profe)

Create table GRADO(


ID_Grado INT IDENTITY (1,1) NOT NULL UNIQUE,
Nombre VARCHAR (50)NOT NULL)
Alter table GRADO
add primary key (ID_Grado)

Create table ASIGNATURA(


ID_Asig INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Nombre VARCHAR (40) NOT NULL,er
tipo varchar(10) NOT NULL CHECK (tipo IN ('Presencial','Virtual')),
Creditos FLOAT NOT NULL,
Curso TINYINT NOT NULL,
Cuatrimestre VARCHAR (2) NOT NULL,
ID_profe INT NOT NULL FOREIGN KEY REFERENCES PROFESOR(ID_profe) ,
ID_grado INT NOT NULL FOREIGN KEY REFERENCES GRADO (ID_grado));

ALTER TABLE ASIGNATURA ADD UNIQUE (ID_Asig);

select * from GRADO


select * from ASIGNATURA

Create table CURSO_ESCOLAR


(ID_cur_esco INT IDENTITY (1,1) NOT NULL UNIQUE,
Ano_inicio Date NOT NULL,
Ano_fin Date NOT NULL)
alter table CURSO_ESCOLAR
add primary key (ID_cur_esco)

Create table ALUMNOvsASIGNATURA


(ID_estudi INT NOT NULL FOREIGN KEY REFERENCES ESTUDIANTE (ID_estudi),
ID_Asig INT NOT NULL FOREIGN KEY REFERENCES ASIGNATURA (ID_Asig),
ID_cur_esco INT NOT NULL FOREIGN KEY REFERENCES CURSO_ESCOLAR (ID_cur_esco))

INSERT

INSERT INTO DEPARTAMENTO(nombre)


VALUES('Ciencia y Educacion'),
('Turismo'),
('Registro'),
('Investigación y Divulgación Científica'),
('Voluntariado'),
('Sociedad ecológica'),
('Servicio Social Universitario'),
('Ciclo Básico');
GO

INSERT INTO GRADO (Nombre)


VALUES('Ingeniería Informática (Plan 2015)'),
('Mercadeo (Plan 2015) '),
('Psicologia (Plan 2015)'),
('agrimensura (Plan 2015)');
go

INSERT INTO PROFESOR (ID_profe, cedula, nombre ,apellido1, apellido2 , ciudad,


direccion, telefono, fecha_nacimiento, sexo, ID_depart)
VALUES (140367,'40211811983', 'DIOGENES','MARTINEZ','AIBAR','Santiago de los
Caballeros','el Ensanchez','8097265345','09/06/1980','M',1),
(150243,'03138753793', 'Jordi','Moran','Perez','Santiago de los
Caballeros','Villa Mella','8099376543','11/09/1985','M',1),
(120113,'03196754331', 'Ilda','Estrella','Cruz','La Vega','Carretera El
Mape','8298869792','12/01/1972','F',7),
(174264,'40262144381', 'Tomas Franquelis ','Ramirez','Perez','Santiago de los
Caballeros','Los Cerros de Gurabo','8496025532','04/04/1991','M',8)
go
INSERT INTO PROFESOR (ID_profe, cedula, nombre ,apellido1, apellido2 , ciudad,
direccion, telefono, fecha_nacimiento, sexo)
VALUES (190000,'03184762538', 'Nathaly','Tolentino','Fereira','San
Cristobal','Cabo arriba','8499846657','11/02/1992','F'),
(187665,'87265344123', 'Samanta','Estevez','De Sanchez','Samaná','La
Mojica','8490287635','02/02/1993','F')

INSERT INTO ESTUDIANTE (ID_estudi,nif, Cedula, Nombre, Apellido1, Apellido,


Ciudad, Direccion, Telefono, F_nac, sexo)
VALUES(174219,'87214656M',40211811969,'Emmanuel','Beltré','Silverio','Santiago de
Los Caballeros','Los Llanos de Gurabo','8098869792','24/09/1996','M'),
(174232,'26902806M', 4027365212,'Stacy','Malibú','Smith','Santo Domingo','Los
Caches','8099287475','14/02/1998','F'),
(172214,'26902806M', 03137626385,'Daniela','Diaz','Selevino','La Vega','El Prado
Arriba','8496036557','11/12/1994','F'),
(177363,'87214656M', 40234568343,'Franchesca','Bermudez','Contreras','Santiago de
los Caballeros','Cien Fuego','8095829792','03/09/1997','F')
GO
INSERT INTO ESTUDIANTE (ID_estudi,nif, Cedula, Nombre, Apellido1, Apellido,
Ciudad, Direccion, Telefono, F_nac, sexo)
VALUES(172345,'23673236J',40286744530,'Arturo','Camil','Silvante','Santiago de
Los Caballeros','Cien fuego','8097265534','12/03/1999','M'),
(196345,'23623872H',40201922376,'Lanna','Abreu','Cameron','Santiago de Los
Caballeros','Cerro Alto','8099288873','03/03/1999','M')

INSERT INTO ASIGNATURA (Nombre, tipo, Creditos, Curso, Cuatrimestre, ID_profe,


ID_grado)
VALUES('Comercio II','Presencial',2, 11,'1',120113, 2),
('Ser Humano y Su Contexto','Virtual',3,12,'2',120113, 3),
('Programacion 2','Presencial',4,23,'1',140367, 1),
('Sistema de Base De Datos I','Presencial',4,25,'2',150243, 1),
('Ingenieria En Software II','Presencial',4,26,'1',174264, 1)
go
INSERT INTO ASIGNATURA (Nombre, tipo, Creditos, Curso, Cuatrimestre,
ID_profe,ID_grado)
VALUES('Agrimensura 2','Virtual',3, 22,'2',190000,4),
('Español 1','Presencial',4, 16,'1',187665,3)

INSERT INTO CURSO_ESCOLAR (Ano_inicio, Ano_fin)


VALUES('09/01/2016','17/12/2016'),
('09/01/2017','17/12/2017'),
('09/01/2018','17/12/2018'),
('09/01/2019','17/12/2019')
go

INSERT INTO ALUMNOvsASIGNATURA (ID_estudi, ID_Asig, ID_cur_esco)


VALUES(174219,3,4),
(174219,4,4),
(174219,5,4),
(177363,5,4),
(177363,2,4),
(172214,1,3),
(174219,2,4),
(174232,4,3),
(174232,2,3),
(174232,5,4)
CONSULTAS

--Consultas sobre una tabla


--1. Devuelve un listado con el primer apellido, segundo apellido y el nombre de
todos los alumnos
select est.nombre, est.apellido1, est.apellido from estudiante est

--2. Devuelve el listado de los alumnos que nacieron en 1999.


select * from ESTUDIANTE where ESTUDIANTE.F_nac>='1999/01/01' and
ESTUDIANTE.F_nac <= '1999/12/31'

--Consultas multitabla
--1. Devuelve un listado con el nombre de las asignaturas, año de inicio y año de
fin del curso escolar del alumno con nif 26902806M.
select est.nif, est.ID_estudi, est.Nombre, curs.Ano_inicio, curs.Ano_fin,
asi.nombre
from ESTUDIANTE est
left join ALUMNOvsASIGNATURA
on est.ID_estudi = ALUMNOvsASIGNATURA.ID_estudi
inner join CURSO_ESCOLAR curs
on curs.ID_cur_esco=ALUMNOvsASIGNATURA.ID_cur_esco
inner join ASIGNATURA asi
on asi.ID_Asig = ALUMNOvsASIGNATURA.ID_Asig
where est.nif = '87214656M'

--2. Devuelve un listado con los datos de todas las alumnas que se han
matriculado alguna vez en el Grado en Ingeniería Informática (Plan 2015)
select ESTUDIANTE.ID_estudi, ESTUDIANTE.nif, estudiante.Nombre,
ESTUDIANTE.Apellido, ESTUDIANTE.Apellido1,
ESTUDIANTE.Ciudad, ESTUDIANTE.Cedula, ESTUDIANTE.Direccion, ESTUDIANTE.Telefono,
ESTUDIANTE.F_nac,
ESTUDIANTE.sexo from ESTUDIANTE inner join ALUMNOvsASIGNATURA
ON ESTUDIANTE.ID_estudi=ALUMNOvsASIGNATURA.ID_estudi
inner join ASIGNATURA
on ASIGNATURA.ID_Asig=ALUMNOvsASIGNATURA.ID_Asig
inner join GRADO
on GRADO.ID_Grado=ASIGNATURA.ID_grado
where GRADO.Nombre='Ingeniería Informática (Plan 2015)'

--3. Devuelve un listado con los profesores que no están asociados a un


departamento.
select * from PROFESOR
where ID_depart is null

--4. Devuelve un listado con todos los departamentos que no han impartido
asignaturas en ningún curso escolar.
select d.Nombre
FROM Profesor pro
inner join Departamento d on d.ID_depart = pro.ID_depart

left join Curso_Escolar curs on curs.ID_cur_esco = pro.ID_profe

WHERE

curs.ID_cur_esco is null

--5. Devuelve un listado con los departamentos que no tienen profesores asociados
SELECT DEPARTAMENTO.nombre, DEPARTAMENTO.ID_depart
FROM profesor_right JOIN departamento
on profesor.ID_depart = departamento.ID_depart
where PROFESOR.ID_profe is null

Vous aimerez peut-être aussi