rambo189619 icon

CREATE COJONES

rambo189619 | PRO | 12/04/12 03:09:01 AM UTC | 0 ⭐ | 205 👁️ | Never ⏰ | []
SQL |

1.94 KB

|

None

|

0 👍

/

0 👎

DROP TABLE IF EXISTS productos,proveedor,suministra cascade;
 
CREATE TABLE productos(
   id       INTEGER ,
   color    CHAR(10),
   PRIMARY KEY(id,color)
   );
   
   CREATE TABLE proveedor(
   id       INTEGER PRIMARY KEY,
   nombre   CHAR(20)
   
);
 
CREATE TABLE suministra(
   id       INTEGER PRIMARY KEY,
   id_productos     INTEGER ,
   id_proveedor INTEGER REFERENCES proveedor,
   color    CHAR(10) ,
   cantidad     INTEGER,
   FOREIGN KEY (id_productos,color) REFERENCES productos
);
INSERT INTO productos VALUES 
(001,'Verde'),
(001,'Rojo'),
(002,'Verde'),
(002,'Rojo');
 
INSERT INTO proveedor VALUES 
(001,'Paco-Regalos'),
(002,'Carlos&Cia'),
(003,'Chinatown');
 
INSERT INTO suministra VALUES 
(1,001,001,'Verde'),
(2,001,002,'Rojo'),
(3,002,001,'Verde'),
(4,002,001,'Rojo');
 
--Ejercicio 4
 
--1
SELECT id_productos, id_proveedor FROM suministra
GROUP BY id_productos, id_proveedor
HAVING COUNT(*)=(SELECT COUNT(*) FROM proveedor);
 
--2
SELECT id_productos, id_proveedor FROM suministra
GROUP BY id_productos, id_proveedor
HAVING COUNT(*)=(SELECT COUNT(*) FROM suministra);
 
--3
SELECT id_productos, id_proveedor FROM suministra NATURAL JOIN proveedor
GROUP BY id_productos, id_proveedor
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
 
--4
SELECT id_productos, id_proveedor FROM suministra NATURAL JOIN proveedor
GROUP BY id_productos, id_proveedor
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos
            WHERE color='Rojo');
 
--5
SELECT id,color FROM productos
GROUP BY id,color
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
 
--6
SELECT proveedor.id,nombre,productos.id,color
FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
GROUP BY proveedor.id,nombre,productos.id,color
HAVING COUNT(*)=(SELECT id,color
        FROM productos
        WHERE id=1 );
 
/* Porque no puede existir un productos con un mismo color en varios proveedores */
 
--7
SELECT proveedor.id,nombre,productos.id,color
FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
HAVING COUNT(*)=(SELECT id,color FROM productos);

Comments