JosepRivaille

BD - REPÀS: inserts/deletes/updates/creates

Apr 6th, 2016
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- 1)
  2.  
  3. UPDATE PROJECTES p
  4. SET PRESSUPOST = PRESSUPOST+500000
  5. WHERE EXISTS(SELECT *
  6.          FROM EMPLEATS e, DEPARTAMENTS d
  7.          WHERE e.NUM_PROJ = p.NUM_PROJ AND
  8.          e.NUM_DPT = d.NUM_DPT AND
  9.          d.CIUTAT_DPT = 'BARCELONA');
  10.  
  11. -- 2)
  12.  
  13. INSERT INTO COST_CIUTAT
  14. SELECT d.CIUTAT_DPT, SUM(e.SOU)
  15. FROM DEPARTAMENTS d, EMPLEATS e
  16. WHERE d.NUM_DPT = e.NUM_DPT
  17. GROUP BY d.CIUTAT_DPT;
  18.  
  19. -- 3)
  20.  
  21. INSERT INTO professors VALUES('123456789', 'Jordi Petit', 56473829, 1234);
  22. INSERT INTO assignacions VALUES ('123456789', 'C1', '119', 3600, 3800);
  23.  
  24. -- 4)
  25.  
  26. INSERT INTO professors VALUES('123456789', 'Jordi Petit', 56473829, 1234);
  27. INSERT INTO despatxos VALUES('A', '6',20);
  28. INSERT INTO despatxos VALUES('B', '6',20);
  29. INSERT INTO assignacions VALUES ('123456789', 'A', '6', 100, 120);
  30. INSERT INTO assignacions VALUES ('123456789', 'A', '6', 121, 140);
  31. INSERT INTO assignacions VALUES ('123456789', 'B', '6', 121, 140);
  32.  
  33. -- 5)
  34.  
  35. INSERT INTO COST_CIUTAT
  36. SELECT DISTINCT d.CIUTAT_DPT, 0
  37. FROM DEPARTAMENTS d
  38. WHERE NOT EXISTS(SELECT *
  39.              FROM DEPARTAMENTS d1, EMPLEATS e
  40.              WHERE d1.CIUTAT_DPT = d.CIUTAT_DPT
  41.                AND e.NUM_DPT = d1.NUM_DPT);
  42.  
  43. -- 6)
  44.  
  45. INSERT INTO DEPARTAMENTS VALUES(1, 'CS', 3, 'OMEGA', 'BARCELONA');
  46. INSERT INTO PROJECTES VALUES(1, 'PROP', 'SUDOKU', 50);
  47. INSERT INTO EMPLEATS VALUES(21, 'Enric Rodríguez', 1234, 'BARCELONA', 1, 1);
  48. INSERT INTO EMPLEATS VALUES(21, 'Salvador Roura', 4321, 'BARCELONA', 1, 1);
  49.  
  50. -- 7)
  51.  
  52. CREATE TABLE presentacioTFG(
  53.     idEstudiant CHAR(100) PRIMARY KEY,
  54.     titolTFG CHAR(100) UNIQUE NOT NULL,
  55.     dniDirector CHAR(50) NOT NULL,
  56.     dniPresident CHAR(50) NOT NULL,
  57.     dniVocal CHAR(50) NOT NULL,
  58.     instantPresentacio INTEGER NOT NULL,
  59.     nota INTEGER CHECK(nota >= 0 AND nota <= 10) DEFAULT NULL,
  60.     FOREIGN KEY (dniDirector) REFERENCES PROFESSORS(dni),
  61.     FOREIGN KEY (dniPresident) REFERENCES PROFESSORS(dni),
  62.     FOREIGN KEY (dniVocal) REFERENCES PROFESSORS(dni),
  63.     CHECK(dniDirector != dniPresident AND dniDirector != dniVocal AND dniPresident != dniVocal));
  64.  
  65. -- 8)
  66.  
  67. CREATE TABLE FRANGES_HORARIES(
  68.     INSTANT_INICI INTEGER,
  69.     INSTANT_FI INTEGER,
  70.     NUM_EMPL INTEGER,
  71.     PRIMARY KEY(INSTANT_INICI, INSTANT_FI, NUM_EMPL),
  72.     CHECK (INSTANT_FI > INSTANT_INICI + 180),
  73.     FOREIGN KEY (NUM_EMPL) REFERENCES EMPLEATS(NUM_EMPL));
  74.  
  75. CREATE TABLE TASQUES_REALITZADES(
  76.     NUM_TASCA INTEGER PRIMARY KEY,
  77.     INSTANT_INICI INTEGER NOT NULL,
  78.     INSTANT_FI INTEGER NOT NULL,
  79.     NUM_EMPL INTEGER NOT NULL,
  80.     DESCRIPCIO CHAR(50) NOT NULL,
  81.     FOREIGN KEY (INSTANT_INICI, INSTANT_FI, NUM_EMPL)
  82.     REFERENCES FRANGES_HORARIES(INSTANT_INICI, INSTANT_FI, NUM_EMPL));
  83.  
  84. -- 9)
  85.  
  86. CREATE TABLE VENDES(
  87.     NUM_VENDA INTEGER PRIMARY KEY,
  88.     NUM_EMPL INTEGER NOT NULL,
  89.     CLIENT CHAR(30),
  90.     FOREIGN KEY (NUM_EMPL) REFERENCES EMPLEATS(NUM_EMPL),
  91.     UNIQUE(NUM_EMPL, CLIENT));
  92.  
  93. CREATE TABLE PRODUCTES_VENUTS(
  94.     NUM_VENDA INTEGER,
  95.     PRODUCTE CHAR(20),
  96.     QUANTITAT INTEGER NOT NULL DEFAULT 1,
  97.     IMPORT INTEGER,
  98.     PRIMARY KEY (NUM_VENDA, PRODUCTE),
  99.     FOREIGN KEY (NUM_VENDA) REFERENCES VENDES(NUM_VENDA));
  100.  
  101. -- JosepRivaille
Add Comment
Please, Sign In to add comment