Advertisement
Guest User

zeby?

a guest
Mar 31st, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.35 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------------------
  2. -- xsedla1e & xsadil07
  3. -- 2. ukol do IDS, 2018/2019
  4. -------------------------------------------------------------------------------------------------------------------------------
  5.  
  6. DROP TABLE Účet CASCADE CONSTRAINTS;
  7. DROP TABLE Správce CASCADE CONSTRAINTS;
  8. DROP TABLE Uživatel CASCADE CONSTRAINTS;
  9. DROP TABLE Místnost CASCADE CONSTRAINTS;
  10. DROP TABLE Oddělení CASCADE CONSTRAINTS;
  11. DROP TABLE Technika CASCADE CONSTRAINTS;
  12. DROP TABLE Oprava CASCADE CONSTRAINTS;
  13. DROP TABLE Žádost CASCADE CONSTRAINTS;
  14. DROP TABLE Spravuje CASCADE CONSTRAINTS;
  15.  
  16. CREATE TABLE Účet (
  17.     ID NUMBER NOT NULL PRIMARY KEY,
  18.     Jméno VARCHAR2(127) NOT NULL,
  19.     Příjmení VARCHAR2(127) NOT NULL,
  20.     Rodné_číslo NUMBER NOT NULL,
  21.     Email VARCHAR2(127) NOT NULL,
  22.     Telefon NUMBER NOT NULL,
  23.     Město VARCHAR2(127) NOT NULL,
  24.     Ulice VARCHAR2(127) NOT NULL,
  25.     PSC NUMBER NOT NULL,
  26.     ID_Umístění NUMBER NOT NULL,
  27.     CHECK (regexp_like(Jméno, '^[a-zA-Z-]+$')),
  28.     CHECK (regexp_like(Email, '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$')),
  29.     CHECK (regexp_like(Rodné_číslo, '^[0-9]{2}[0-8][0-9][0-3][0-9][0-9]{4}$')),
  30.     CHECK (regexp_like(PSC, '^[0-9]{5}$'))
  31. );
  32.  
  33. CREATE TABLE Správce (
  34.   Účet NUMBER NOT NULL PRIMARY KEY,
  35.   Licence VARCHAR2(127) NOT NULL
  36. );
  37.  
  38. CREATE TABLE Uživatel (
  39.   Účet NUMBER NOT NULL PRIMARY KEY
  40. );
  41.  
  42. CREATE TABLE Místnost (
  43.     Číslo_místnosti NUMBER NOT NULL PRIMARY KEY,
  44.     Patro NUMBER NOT NULL,
  45.     Typ VARCHAR2(1024) NOT NULL,
  46.     Popis VARCHAR2(2048) NOT NULL,
  47.     ID_Oddělení NUMBER NOT NULL
  48. );
  49.  
  50. CREATE TABLE Oddělení(
  51.     Číslo_oddělení NUMBER NOT NULL PRIMARY KEY,
  52.     Popis VARCHAR2(2048) NOT NULL
  53. );
  54.  
  55. CREATE TABLE Technika (
  56.     ID NUMBER NOT NULL PRIMARY KEY,
  57.     Výrobní_číslo VARCHAR2(127) NOT NULL,
  58.     Typ VARCHAR2(1024) NOT NULL,
  59.     Výrobce VARCHAR2(127) NOT NULL,
  60.     Model_techniky VARCHAR2(127) NOT NULL,
  61.     Specifikace VARCHAR2(1024) NOT NULL,
  62.     ID_Umístění NUMBER NOT NULL,
  63.     ID_Uživatele NUMBER NOT NULL
  64. );
  65.  
  66. CREATE TABLE Oprava (
  67.     ID NUMBER NOT NULL PRIMARY KEY,
  68.     Kdy DATE NOT NULL,
  69.     Aktuální_stav VARCHAR2(1024) NOT NULL,
  70.     ID_Techniky NUMBER NOT NULL,
  71.     ID_Správce NUMBER
  72. );
  73.  
  74. CREATE TABLE Žádost (
  75.     ID NUMBER NOT NULL PRIMARY KEY,
  76.     Kdy DATE NOT NULL,
  77.     ID_Techniky NUMBER NOT NULL,
  78.     ID_Opravy NUMBER NOT NULL,
  79.     ID_Správce NUMBER NOT NULL,
  80.     ID_Uživatele NUMBER NOT NULL
  81. );
  82.  
  83.  
  84. -- Vztahy
  85. CREATE TABLE Spravuje (
  86.   ID_Správce NUMBER NOT NULL,
  87.   ID_Techniky NUMBER NOT NULL
  88. );
  89.  
  90. ALTER TABLE Účet
  91.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti);
  92.  
  93. ALTER TABLE Správce
  94.   ADD FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  95.  
  96. ALTER TABLE Uživatel
  97.   ADD FOREIGN KEY (Účet) REFERENCES Účet(ID) ON DELETE CASCADE;
  98.  
  99. ALTER TABLE Místnost
  100.   ADD FOREIGN KEY (ID_Oddělení) REFERENCES Oddělení(Číslo_oddělení);
  101.  
  102. ALTER TABLE Technika
  103.   ADD FOREIGN KEY (ID_Umístění) REFERENCES Místnost(Číslo_místnosti)
  104.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  105.  
  106. ALTER TABLE Oprava
  107.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  108.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE SET NULL;
  109.  
  110. ALTER TABLE Žádost
  111.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE
  112.   ADD FOREIGN KEY (ID_Opravy) REFERENCES Oprava(ID) ON DELETE SET NULL
  113.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet)
  114.   ADD FOREIGN KEY (ID_Uživatele) REFERENCES Uživatel(Účet);
  115.  
  116. ALTER TABLE Spravuje
  117.   ADD FOREIGN KEY (ID_Správce) REFERENCES Správce(Účet) ON DELETE CASCADE
  118.   ADD FOREIGN KEY (ID_Techniky) REFERENCES Technika(ID) ON DELETE CASCADE;
  119.  
  120.  
  121. -- Vlozeni oddeleni
  122. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  123.     VALUES (1, 'CVT');
  124. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  125.     VALUES (2, 'Kanceláře');
  126. INSERT INTO Oddělení (Číslo_oddělení, Popis)
  127.     VALUES (3, 'Přednášky');
  128.  
  129. -- Vlozeni mistnosti
  130. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  131.     (10, 1, 'Správa CVT', 'Místnost slouží pro zaměstnance správy CVT', 1);
  132. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  133.     (20, 1, 'Serverovna', 'V místnosti jsou uloženy veškeřé servery', 1);
  134. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  135.     (30, 2, 'Kancelář ředitele', 'Zde sídlí velký šéf', 2);
  136. INSERT INTO Místnost (Číslo_místnosti, Patro, Typ, Popis, ID_Oddělení)VALUES
  137.     (40, 2, 'Hlavní aula', 'Pro technické konference', 3);
  138.  
  139. -- Vlozeni uctu
  140. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  141.     VALUES (1, 'Jiří', 'Novák', 5955127215, 'example0@email.com', 3107635075, 'Brno', 'Zahradní 15', 44739, 10 );
  142. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  143.     VALUES (2, 'Jan', 'Svoboda', 8142317343, 'example1@email.com', 4170585496, 'Ostrava', 'Krátká 15', 79652, 10);
  144. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  145.     VALUES (3, 'Petr', 'Novotný', 1906212050, 'example2@email.com', 4217608504, 'Plzeň', 'Nádražní 15', 25439, 10);
  146. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  147.     VALUES (4, 'Josef', 'Dvořák', 3635184726, 'example3@email.com', 5071080405, 'Liberec', 'Školní 15', 25586, 10);
  148. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  149.     VALUES (5, 'Pavel', 'Černý', 9467101671, 'example4@email.com', 9088512650, 'Olomouc', 'Polní 15', 64744, 20);
  150. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  151.     VALUES (6, 'Martin', 'Procházka', 7340288605, 'example5@email.com', 1241925560, 'Budějovice', 'Luční 15', 72848, 20);
  152. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  153.     VALUES (7, 'Jaroslav', 'Kučera', 2670098059, 'example6@email.com', 6680356276, 'Labem', 'Komenského 15', 63404, 30);
  154. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  155.     VALUES (8, 'Tomáš', 'Veselý', 1461136966, 'example7@email.com', 9381258512, 'Králové', 'Nová 15', 46203, 10);
  156. INSERT INTO Účet (ID, Jméno, Příjmení, Rodné_číslo, Email, Telefon, Město, Ulice, PSC, ID_Umístění)
  157.     VALUES (9, 'Miroslav', 'Horák', 6635251305, 'example8@email.com', 7227762065, 'Pardubice', 'Husova 15', 60765, 10);
  158.  
  159. INSERT INTO Správce (Účet, Licence) VALUES (1, 'Elektronika');
  160. INSERT INTO Správce (Účet, Licence) VALUES (2, 'Sítě');
  161. INSERT INTO Správce (Účet, Licence) VALUES (3, 'Hardware');
  162. INSERT INTO Správce (Účet, Licence) VALUES (4, 'Grafika');
  163. INSERT INTO Uživatel (Účet) VALUES (5);
  164. INSERT INTO Uživatel (Účet) VALUES (6);
  165. INSERT INTO Uživatel (Účet) VALUES (7);
  166. INSERT INTO Uživatel (Účet) VALUES (8);
  167. INSERT INTO Uživatel (Účet) VALUES (9);
  168.  
  169. -- Vlozeni techniky
  170. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  171.     VALUES (1, '7FC0TI3231', 'PC', 'Asus', 'KLM18', '4 Ghz, RAM 124 KB...', 10, 5);
  172. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  173.     VALUES (2, 'M381KHSV4I', 'Tablet', 'Lenovo', 'LKJS48LS', '4 Ghz, RAM 124 KB...', 30, 6);
  174. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  175.     VALUES (3, 'QGE87D3J8K', 'Monitor', 'Dell', '23FHDIPS', 'Pekny monitor se stojankem', 20, 7);
  176. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  177.     VALUES (4, 'A4J734U0ME', 'Monitor', 'Dell', '24FHDTN', 'Ne tak pekny monitor bez stojanku', 10, 8);
  178. INSERT INTO Technika (ID, Výrobní_číslo, Typ, Výrobce, Model_techniky, Specifikace, ID_Umístění, ID_Uživatele)
  179.     VALUES (5, '54J61LE55B', 'Myš', 'Hama', 'SCRL456', 'Obyčejná PC myš', 20, 9);
  180.  
  181. -- Vlozeni oprav
  182. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky, ID_Správce)
  183.     VALUES (1, '20.4.2019', 'Probíhá', 3, 3);
  184. INSERT INTO Oprava (ID, Kdy, Aktuální_stav, ID_Techniky)
  185.     VALUES (2, '1.4.2019', 'Nevyřízeno', 1);
  186.  
  187. -- Vlozeni zadosti
  188. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  189.     VALUES (1, '1.4.2019', 3, 1, 2, 5);
  190. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  191.     VALUES (2, '2.4.2019', 1, 2, 3, 6);
  192. INSERT INTO Žádost (ID, Kdy, ID_Techniky, ID_Opravy, ID_Správce, ID_Uživatele)
  193.     VALUES (3, '2.4.2019', 1, 2, 1, 7);
  194.  
  195. -- Spravuje
  196. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  197.     VALUES (1, 1);
  198. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  199.     VALUES (2, 2);
  200. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  201.     VALUES (3, 3);
  202. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  203.     VALUES (4, 4);
  204. INSERT INTO Spravuje (ID_Správce, ID_Techniky)
  205.     VALUES (1, 5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement