rambo189619

CREATE COJONES

Dec 3rd, 2012
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.94 KB | None | 0 0
  1. DROP TABLE IF EXISTS productos,proveedor,suministra cascade;
  2.  
  3. CREATE TABLE productos(
  4.    id       INTEGER ,
  5.    color    CHAR(10),
  6.    PRIMARY KEY(id,color)
  7.    );
  8.    
  9.    CREATE TABLE proveedor(
  10.    id       INTEGER PRIMARY KEY,
  11.    nombre   CHAR(20)
  12.    
  13. );
  14.  
  15. CREATE TABLE suministra(
  16.    id       INTEGER PRIMARY KEY,
  17.    id_productos     INTEGER ,
  18.    id_proveedor INTEGER REFERENCES proveedor,
  19.    color    CHAR(10) ,
  20.    cantidad     INTEGER,
  21.    FOREIGN KEY (id_productos,color) REFERENCES productos
  22. );
  23. INSERT INTO productos VALUES
  24. (001,'Verde'),
  25. (001,'Rojo'),
  26. (002,'Verde'),
  27. (002,'Rojo');
  28.  
  29. INSERT INTO proveedor VALUES
  30. (001,'Paco-Regalos'),
  31. (002,'Carlos&Cia'),
  32. (003,'Chinatown');
  33.  
  34. INSERT INTO suministra VALUES
  35. (1,001,001,'Verde'),
  36. (2,001,002,'Rojo'),
  37. (3,002,001,'Verde'),
  38. (4,002,001,'Rojo');
  39.  
  40. --Ejercicio 4
  41.  
  42. --1
  43. SELECT id_productos, id_proveedor FROM suministra
  44. GROUP BY id_productos, id_proveedor
  45. HAVING COUNT(*)=(SELECT COUNT(*) FROM proveedor);
  46.  
  47. --2
  48. SELECT id_productos, id_proveedor FROM suministra
  49. GROUP BY id_productos, id_proveedor
  50. HAVING COUNT(*)=(SELECT COUNT(*) FROM suministra);
  51.  
  52. --3
  53. SELECT id_productos, id_proveedor FROM suministra NATURAL JOIN proveedor
  54. GROUP BY id_productos, id_proveedor
  55. HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
  56.  
  57. --4
  58. SELECT id_productos, id_proveedor FROM suministra NATURAL JOIN proveedor
  59. GROUP BY id_productos, id_proveedor
  60. HAVING COUNT(*)=(SELECT COUNT(*) FROM productos
  61.             WHERE color='Rojo');
  62.  
  63. --5
  64. SELECT id,color FROM productos
  65. GROUP BY id,color
  66. HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
  67.  
  68. --6
  69. SELECT proveedor.id,nombre,productos.id,color
  70. FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
  71. GROUP BY proveedor.id,nombre,productos.id,color
  72. HAVING COUNT(*)=(SELECT id,color
  73.         FROM productos
  74.         WHERE id=1 );
  75.  
  76. /* Porque no puede existir un productos con un mismo color en varios proveedores */
  77.  
  78. --7
  79. SELECT proveedor.id,nombre,productos.id,color
  80. FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
  81. HAVING COUNT(*)=(SELECT id,color FROM productos);
Advertisement
Add Comment
Please, Sign In to add comment