Advertisement
Guest User

Untitled

a guest
Oct 15th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Ex02.sql
  2.  
  3. Typ
  4. Nieznany plik
  5. Rozmiar
  6. 4 KB (3 864 bajty)
  7. Wykorzystane miejsce
  8. 4 KB (3 864 bajty)
  9. Lokalizacja
  10. Bazy Danych Przestrzennych
  11. Właściciel
  12. ja
  13. Zmodyfikowany
  14. 07:38 przeze mnie
  15. Otwarty
  16. 07:38 przeze mnie
  17. Utworzono
  18. 07:38 w aplikacji Google Drive Web
  19. Dodaj opis
  20. Przeglądający mogą pobierać
  21. CREATE TABLE producenci(
  22.     id_producenta INT NOT NULL,
  23.     nazwa_producenta VARCHAR(64) NOT NULL,
  24.     mail VARCHAR(64) NOT NULL,
  25.     telefon VARCHAR(13),
  26.     PRIMARY KEY(id_producenta,nazwa_producenta)
  27. );
  28.  
  29. CREATE TABLE produkty(
  30.     id_produktu INT PRIMARY KEY,
  31.     nazwa_produktu VARCHAR(64) NOT NULL,
  32.     cena INT NOT NULL,
  33.     id_producenta INT NOT NULL,
  34.     nazwa_producenta VARCHAR(64) NOT NULL,
  35.     FOREIGN KEY (id_producenta,nazwa_producenta) REFERENCES producenci(id_producenta,nazwa_producenta)
  36. );
  37.  
  38. CREATE TABLE zamowienia(
  39.     id_zamowienia INT PRIMARY KEY,
  40.     id_produktu INT NOT NULL,
  41.     id_producenta INT NOT NULL,
  42.     nazwa_producenta VARCHAR(64) NOT NULL,
  43.     ilosc INT NOT NULL,
  44.     data DATE NOT NULL,
  45.     FOREIGN KEY(id_producenta,nazwa_producenta) REFERENCES producenci(id_producenta,nazwa_producenta),
  46.     FOREIGN KEY(id_produktu) REFERENCES produkty(id_produktu)
  47. );
  48.  
  49. INSERT INTO producenci VALUES
  50. (1,'Producent1','producent1@hotmail.com','123456789'),
  51. (2,'Producent2','producent2@hotmail.com','234567891'),
  52. (3,'Producent3','producent3@hotmail.com','345678912'),
  53. (4,'Producent4','producent4@hotmail.com','567891234'),
  54. (5,'Producent5','producent5@hotmail.com','678912345'),
  55. (6,'Producent6','producent6@hotmail.com','789123456'),
  56. (7,'Producent7','producent7@hotmail.com','111222333'),
  57. (8,'Producent8','producent8@hotmail.com','222333444'),
  58. (9,'Producent9','producent9@hotmail.com','555666777'),
  59. (10,'Producent10','producent10@hotmail.com','333444666');
  60.  
  61. INSERT INTO produkty VALUES
  62. (1,'Produkt1',1190,1,'Producent1'),
  63. (2,'Produkt2',1280,2,'Producent2'),
  64. (3,'Produkt3',1370,3,'Producent3'),
  65. (4,'Produkt4',1460,4,'Producent4'),
  66. (5,'Produkt5',1550,5,'Producent5'),
  67. (6,'Produkt6',1640,6,'Producent6'),
  68. (7,'Produkt7',1730,7,'Producent7'),
  69. (8,'Produkt8',1820,8,'Producent8'),
  70. (9,'Produkt9',1910,9,'Producent9'),
  71. (10,'Produkt9',2020,10,'Producent10');
  72.  
  73. INSERT INTO zamowienia VALUES
  74. (1,1,1,'Producent1',11,'2017-01-01'),
  75. (2,2,2,'Producent2',12,'2017-02-01'),
  76. (3,3,3,'Producent3',13,'2017-03-01'),
  77. (4,4,4,'Producent4',14,'2017-04-01'),
  78. (5,5,5,'Producent5',15,'2017-05-01'),
  79. (6,6,6,'Producent6',16,'2017-06-01'),
  80. (7,7,7,'Producent7',17,'2017-07-01'),
  81. (8,8,8,'Producent8',18,'2017-08-01'),
  82. (9,9,9,'Producent9',19,'2017-09-01'),
  83. (10,10,10,'Producent10',20,'2017-09-01');
  84.  
  85. SELECT * FROM produkty,producenci;
  86.  
  87. SELECT *
  88. FROM produkty
  89.     LEFT JOIN producenci ON producenci.id_producenta = produkty.id_produktu;
  90.  
  91. SELECT zamowienia.nazwa_producenta,SUM(ilosc) AS liczba_zamowien, (ilosc * produkty.cena) AS cena
  92. FROM zamowienia
  93.     LEFT JOIN produkty ON produkty.id_produktu = zamowienia.id_zamowienia
  94. GROUP BY nazwa_producenta;
  95.  
  96. SELECT produkty.nazwa_produktu, ilosc
  97. FROM zamowienia
  98.     LEFT JOIN produkty ON produkty.id_produktu = zamowienia.id_produktu;
  99.  
  100. SELECT *
  101. FROM produkty
  102.     NATURAL JOIN zamowienia;
  103.  
  104. SELECT zamowienia.nazwa_producenta, produkty.nazwa_produktu, ilosc
  105. FROM zamowienia
  106.     LEFT JOIN produkty ON produkty.id_produktu = zamowienia.id_produktu
  107. WHERE (ilosc * produkty.cena) > 10000000;
  108.  
  109. SELECT LEFT(produkty.nazwa_produktu,1),MAX(zamowienia.ilosc)
  110. FROM zamowienia
  111.     LEFT JOIN produkty ON produkty.id_produktu = zamowienia.id_produktu;
  112.  
  113. SELECT 'Produkt '
  114.     || upper(produkty.nazwa_produktu) || ' którego procudente jest '
  115.     || upper(zamowienia.nazwa_producenta) || ' zamówiono '
  116.     || zamowienia.ilosc || ' razy.' AS opis
  117. FROM zamowienia
  118.     JOIN produkty ON produkty.id_produktu = zamowienia.id_produktu
  119. ORDER BY zamowienia.ilosc DESC;
  120.  
  121. ALTER TABLE zamowienia ADD COLUMN nowe_id VARCHAR(32);
  122.  
  123. UPDATE zamowienia
  124. SET nowe_id = upper(left(nazwa_producenta,3)) || '_';
  125.  
  126. UPDATE zamowienia
  127. SET nowe_id = nowe_id ||
  128. (
  129. SELECT nazwa_produktu
  130. FROM zamowienia
  131.     JOIN produkty ON zamowienia.id_produktu = produkty.id_produktu
  132.     WHERE zamowienia.id_produktu = produkty.id_produktu
  133. );
  134.  
  135. CREATE TABLE number(value INT NOT NULL);
  136.  
  137. CREATE SEQUENCE number_sequence
  138. start with 100
  139. increment by 5
  140. minvalue 0
  141. maxvalue 125
  142. cycle;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement