Sei sulla pagina 1di 5

CREACION DE LA BASE DE DATOS CREATE TABLE Pinacoteca( CodigoPct varchar(6) not null, Ciudad varchar(20) not null, Direccion

varchar(20) not null, Superficie integer not null, PRIMARY KEY(codigoPct) ); CREATE TABLE Escuela( CodigoEsc varchar(6) not null, Nombre varchar(20) not null, Pais varchar(20) not null, Fecha datetime not null, PRIMARY KEY(codigoEsc) ); CREATE TABLE Mecenas( CodigoMcn varchar(6) not null, Nombre varchar(20) not null, Ciudad varchar(20) not null, FechaFal datetime, PRIMARY KEY(codigoMcn) ); CREATE TABLE Pintor( CodigoPtr varchar(6) not null, Nombre varchar(20) not null, Pais varchar(20) not null, Ciudad varchar(20) not null, FechaNac datetime not null, FechaFal datetime not null, CodigoMaestroPtr varchar(6), CodigoEsc varchar(6) not null, PRIMARY KEY (CodigoPtr), FOREIGN KEY (CodigoMaestroPtr) REFERENCES Pintor, FOREIGN KEY (CodigoEsc) REFERENCES Escuela, ); CREATE TABLE Cuadro( CodigoCdr varchar(6) not null, Nombre varchar(20) not null, Medidas varchar(50) not null, Fecha datetime not null, Tecnica varchar(20)not null, CodigoPct varchar(6), CodigoPtr varchar(6), PRIMARY KEY(CodigoCdr), FOREIGN KEY (CodigoPct) REFERENCES Pinacoteca, FOREIGN KEY (CodigoPtr) REFERENCES Pintor, ); CREATE TABLE Mecenazgo( CodigoMcn varchar(6), CodigoPtr varchar(6), relacion varchar(15) not null, FechaIni datetime, FechaFin datetime, PRIMARY KEY(CodigoMcn,CodigoPtr), check (FechaIni<FechaFin), FOREIGN KEY (CodigoMcn) REFERENCES Mecenas, FOREIGN KEY (CodigoPtr) REFERENCES Pintor, );

INSERCION DE DATOS
--DATOS A PINACOTECA INSERT INTO PINACOTECA VALUES("PNC001","LA PAZ","AV. VASQUEZ No.12",20) INSERT INTO PINACOTECA VALUES("PNC002","ORURO","AV. COSTANERA",30) INSERT INTO PINACOTECA VALUES("PNC003","POTOSI","CALLE LOS RAMALES",20) INSERT INTO PINACOTECA VALUES("PNC004","COCHABAMBA","AV. ROSALES",30) INSERT INTO PINACOTECA VALUES("PNC005","LA PAZ","CALLE MURILLO",50) --DATOS A ESCUELA INSERT INTO ESCUELA VALUES("ESC001","FLORENTINA","ITALIA","1/1/1980") INSERT INTO ESCUELA VALUES("ESC002","ALMA BELLA","BOLIVIA","1/1/1989") INSERT INTO ESCUELA VALUES("ESC003","BARROCA","FRANCIA","5/5/1971") INSERT INTO ESCUELA VALUES("ESC004","MODERNISMO","ITALIA","6/6/2000") INSERT INTO ESCUELA VALUES("ESC005","POSTMODERNISMO","ITALIA","3/5/2001") --PINTOR DELETE FROM PINTOR INSERT INTO PINTOR VALUES("PTR001","LUIS CARDENAS","BOLIVIA","LA PAZ","1/1/1925","1/1/1970","PTR001","ESC001") INSERT INTO PINTOR VALUES("PTR002","ALEJANDRO MARTINEZ","PERU","LIMA","3/1/1935","1/1/1980","PTR002","ESC002") INSERT INTO PINTOR VALUES("PTR003","PEDRO MIRANDA","ECUADOR","QUITO","7/1/1910","1/1/1950","PTR001","ESC003") INSERT INTO PINTOR VALUES("PTR004","MAMANI MAMANI","BOLIVIA","COCHABAMBA","3/11/1825","15/10/1960","PTR002","ESC002") INSERT INTO PINTOR VALUES("PTR005","MARIANO LAZO","PERU","PUNO","8/1/1935","5/8/1955","PTR001","ESC001") INSERT INTO PINTOR VALUES("PTR006","TENORIO BAPTISTA","PERU","LIMA","8/1/1935","5/8/1955","PTR001","ESC001") INSERT INTO PINTOR VALUES("PTR007","MARIA LEMA","ARGENTINA","BUENOS AIRES","8/1/1935","5/8/1955","PTR001","ESC001") --DATOS A MECENA INSERT INTO MECENAS VALUES("MCN001","LEOPOLDO LETRI","FRANCIA","31/1/2003") INSERT INTO MECENAS VALUES("MCN002","DAVID CATELI","ITALIA","17/8/2004") INSERT INTO MECENAS VALUES("MCN003","MICHEL LARREAU","FRANCIA","24/12/2002") INSERT INTO MECENAS VALUES("MCN004","NORMAN CETAUX","FRANCIA","17/8/2004") INSERT INTO MECENAS VALUES("MCN005","VICTORINO LARR","ESPAA","24/12/2002") --DATOS DE MECENAZGO INSERT INTO MECENAZGO VALUES("MCN001","PTR001","ECONOMICO","31/5/1945","31/5/1955") INSERT INTO MECENAZGO VALUES("MCN002","PTR002","ACTUALIZACION","30/8/1965","31/3/1975") INSERT INTO MECENAZGO VALUES("MCN003","PTR003","ECONOMICO","4/2/1945","8/9/1955") INSERT INTO MECENAZGO VALUES("MCN004","PTR004","ACTUALIZACION","1/6/1870","3/3/1880") INSERT INTO MECENAZGO VALUES("MCN005","PTR005","ECONOMICO","2/2/1925","6/9/1935") INSERT INTO MECENAZGO VALUES("MCN004","PTR005","ECONOMICO","2/2/1925","6/9/1935") --CUADRO INSERT INTO CUADRO VALUES("CDR001","ANGELES","2A Y 5L","1/5/1945","OLEO","PNC001","PTR001") INSERT INTO CUADRO VALUES("CDR002","LAS ROSAS DEL JARDIN","4A Y 3L","1/5/1975","OLEO","PNC001","PTR002") INSERT INTO CUADRO VALUES("CDR003","MARIA","6A Y 7L","8/8/1995","OLEO","PNC002","PTR003") INSERT INTO CUADRO VALUES("CDR004","LA ULTIMA CENA","1A Y 3L","5/1/1998","OLEO","PNC002","PTR004") INSERT INTO CUADRO VALUES("CDR005","ESCLAVOS","8A Y 8L","6/9/1993","OLEO","PNC003","PTR004") INSERT INTO CUADRO VALUES("CDR006","EL VIOLINISTA","4A Y 3L","7/3/1977","OLEO","PNC003","PTR005") INSERT INTO CUADRO VALUES("CDR007","LA LAGUNA","6A Y 7L","8/8/1995","OLEO","PNC002","PTR003") INSERT INTO CUADRO VALUES("CDR008","VIRTUD","1A Y 3L","5/1/1998","OLEO","PNC002","PTR004") INSERT INTO CUADRO VALUES("CDR009","PAZ","8A Y 8L","6/9/1993","OLEO","PNC003","PTR004") INSERT INTO CUADRO VALUES("CDR010","VIOLENCIA","4A Y 3L","7/3/1977","OLEO","PNC003","PTR003") INSERT INTO CUADRO VALUES("CDR011","SOLEDAD Y PRISION","8A Y 8L","6/9/1993","OLEO","PNC002","PTR004") INSERT INTO CUADRO VALUES("CDR012","DESDE LA VENTANA","4A Y 3L","7/3/1977","OLEO",null,"PTR004") INSERT INTO CUADRO VALUES("CDR013","LA TECNOLOGIA","6A Y 5L","4/3/2004","ACUARELAS",null,"PTR003")

CONSULTAS
--1.- Listar los nombres de los pintores SELECT nombre FROM PINTOR --2.- Listar todas las columnas de la tabla pintor SELECT * FROM PINTOR --3.- Listar los cdigos de los pintores que pintaron algn cuadro select nombre from pintor where codigoptr in ( SELECT distinct codigoPtr FROM CUADRO) --4.- Listar los datos de las pinacotecas con superficie mayor a 10 m2. SELECT * FROM PINACOTECA WHERE superficie>20 --5.- Listar los datos de las pinacotecas con superficie que poseen una superficie de 20 a 30 m2 SELECT * FROM pinacoteca WHERE superficie BETWEEN 20 and 30 --6.- Listar los nombres de los pintores y los cuadros que pinto --con alias SELECT p.nombre, c.nombre FROM cuadro c, pintor p WHERE c.codigoptr=p.codigoptr --s Alias SELECT pintor.nombre, cuadro.nombre FROM cuadro, pintor WHERE cuadro.codigoptr=pintor.codigoptr --7.- Listar los nombres de los cuadros que pint el pintor "Mamani Mamani" SELECT p.nombre, c.nombre FROM cuadro c, pintor p WHERE c.codigoptr=p.codigoptr and p.nombre="Mamani Mamani" --8.- Listar los nombres de los pintores que exponene algun cuadro en alguna pinacoteca y ordenado en forma --descendente por nombre SELECT DISTINCT p.nombre FROM pintor p, cuadro c WHERE p.codigoptr=c.codigoptr ORDER BY p.NOMBRE desc --9.- Listar los nombres de cuadros que no se encuentran en ninguna pinacoteca SELECT nombre FROM cuadro WHERE codigopct IS NULL --SUBCONSULTAS --10.- Listar los nombres de pintores cuyo mecenas es "MCN004" mediante subconsultas SELECT nombre FROM PINTOR WHERE codigoPTR IN (SELECT codigoPTR FROM mecenazgo WHERE codigomcn=(SELECT codigomcn FROM MECENAS WHERE codigoMCN="MCN004" ) ) --11.- Listar los nombres de los pintores que no pintaron ningn cuadro SELECT Nombre FROM pintor WHERE codigoptr NOT IN (SELECT codigoPtr FROM cuadro) --12.- Listar el nombre del mecenas del pintor "MAMANI MAMANI"

SELECT nombre FROM MECENAS WHERE CODIGOMCN IN (SELECT codigomcn FROM MECENAZGO WHERE codigoptr=( select codigoptr from pintor where nombre="MAMANI MAMANI" ) ) --13B.- Mostrar las edades de los pintores en la que fallecieron select datediff(yy,fechafal,fechanac) as edad from pintor --13C. Mostrar las edades actuales de los pintores select datediff(yy,"15/12/2006",fechanac) as edadActual from pintor --13A.- Listar los nombres de pinacotecas que poseen una superficie mayor al de la pinacoteca de la "CALLE MURILLO" SELECT * FROM PINACOTECA WHERE superficie>( SELECT superficie FROM PINACOTECA WHERE direccion="AV. VASQUEZ No.12") select * from pintor where nombre like "m%" --FUNCIONES AGREGADAS (AVG,MIN,MAX,SUM,COUNT) --14.- Listar el nmero de pintores registrados SELECT COUNT(*) as nropintores FROM pintor; --5a.-Listar el nombre del pintor mas joven SELECT nombre FROM pintor WHERE datediff(yy,fechafal,fechanac)=(SELECT MIN(datediff(yy,fechafal,fechanac)) FROM pintor) --15b.-Listar el nombre de la pinacoteca de menor superoficie select * from pinacoteca alter table pinacoteca SELECT codigoPct FROM pinacoteca WHERE superficie=(SELECT MIN(superficie) FROM pinacoteca) --16.- Calcular la suma total de superficie de las pinacotecas SELECT SUM(superficie) FROM pinacoteca --17.- Calcular el promedio de superficie SELECT AVG(superficie) FROM pinacoteca GROUP BY --18.- Listar los codigos de los pintores y la cantidad de pinturas de las que son autores SELECT c.codigoptr ,COUNT(c.codigocdr) FROM cuadro c GROUP BY c.codigoptr --19.- Listar a los codigos de pintores que pintaron 2 o mas cuadros select nombre from pintor where codigoPtr in (

SELECT codigoptr FROM cuadro GROUP BY codigoptr HAVING COUNT(codigoptr)>= 2) --20.- Listar el nombre y edad de todos los mecenas que tienen a su proteccion a mas de 2 pintores select * from mecenas select * from pintor select * from mecenazgo select nombre from pintor where codigoptr in( select codigoPtr from mecenazgo where codigoptr in (SELECT m.codigoptr FROM mecenazgo m, pintor p WHERE m.codigoptr=p.codigoptr GROUP BY m.codigoptr HAVING COUNT(m.codigoptr)>=2 ) ) select codigoPtr, count(codigoPtr) from mecenazgo group by codigoPtr select * from pintor

Potrebbero piacerti anche