icatalin

lab 8 cristina bd

Jan 14th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.38 KB | None | 0 0
  1. --Lab 8
  2.  
  3. --Ex1
  4. --a) fara precizarea  vreunei chei sau cosntrangere
  5. CREATE TABLE angajati_cst ( cod_ang NUMBER(4),
  6.                             nume varchar2(20),
  7.                             prenume varchar2(20),
  8.                             email CHAR(15),
  9.                             data_ang DATE,
  10.                             job varchar2(10),
  11.                             cod_sef NUMBER(4),
  12.                             salariu NUMBER(8,2),
  13.                             cod_dep NUMBER(2) );
  14. DROP TABLE angajati_cst;
  15.  
  16. --b) cu precizarea cheilor primare la nivel de coloana si a constarngerilot NOT NULL pt coloanele nume si salariu
  17.  
  18. CREATE TABLE angajati_cst ( cod_ang NUMBER(4) CONSTRAINT cod_ang_pk PRIMARY KEY,
  19.                             nume varchar2(20) CONSTRAINT nume_nn NOT NULL,
  20.                             prenume varchar2(20),
  21.                             email CHAR(15),
  22.                             data_ang DATE,
  23.                             job varchar2(10),
  24.                             cod_sef NUMBER(4),
  25.                             salariu NUMBER(8,2) CONSTRAINT salariu_nn NOT NULL,
  26.                             cod_dep NUMBER(2) );
  27.  
  28. --c) cu precizarea cheii primare la nivel de tabler si a cosntrangerilor NOT NULL pt coloanele nume si salariu
  29. DROP TABLE angajati_cst;
  30.  
  31. CREATE TABLE angajati_cst ( cod_ang NUMBER(4),
  32.                             nume varchar2(20) CONSTRAINT nume_nn NOT NULL,
  33.                             prenume varchar2(20),
  34.                             email CHAR(15),
  35.                             data_ang DATE,
  36.                             job varchar2(10),
  37.                             cod_sef NUMBER(4),
  38.                             salariu NUMBER(8,2) CONSTRAINT salariu_nn NOT NULL,
  39.                             cod_dep NUMBER(2),
  40.                             CONSTRAINT cod_ang_pk PRIMARY KEY(cod_ang) );
  41.                            
  42. --Ex2
  43.  
  44. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  45. VALUES(100, 'nume1', 'prenume1', NULL, NULL, 'Director', NULL, 20000, 10);
  46. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  47. VALUES (101, 'nume2', 'prenume2', 'nume2', to_date('02-02-2004', 'dd-mm-yyyy'), 'inginer', 100, 10000, 10);
  48. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  49. VALUES(102, 'nume3', 'prenume3', 'nume3', to_date('05-06-2000', 'dd-mm-yyyy'), 'analist', 101, 5000, 20);
  50.  
  51. DELETE FROM angajati_cst
  52. WHERE   cod_ang = 101;
  53. DELETE FROM angajati_cst
  54. WHERE   cod_ang = 102;
  55.  
  56. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  57. VALUES (101, 'nume2', 'prenume2', 'nume2', to_date('02-02-2004', 'dd-mm-yyyy'), 'inginer', 100, 10000, 10);
  58. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  59. VALUES(102, 'nume3', 'prenume3', 'nume3', to_date('05-06-2000', 'dd-mm-yyyy'), 'analist', 101, 5000, 20);
  60. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  61. VALUES (103, 'nume4', 'prenume4', NULL, NULL, 'inginer', 100, 90000, 20);
  62. INSERT INTO angajati_cst(cod_ang, nume, prenume, email, data_ang, job, cod_sef, salariu, cod_dep)
  63. VALUES(104, 'nume5', 'prenume5', 'nume5', NULL, 'analist', 101, 3000, 30);
  64.  
  65. DELETE FROM angajati_cst
  66. WHERE   cod_ang = 104;
  67.  
  68. --Ex 3
  69.  
  70. CREATE TABLE angajati10_cst
  71. AS
  72. SELECT
  73.     *
  74. FROM
  75.     angajati_cst
  76. WHERE
  77.     cod_dep = 10;
  78.  
  79. --Ex 4
  80.  
  81. ALTER TABLE angajati_cst
  82. ADD comision NUMBER(4,2);
  83.  
  84. --Ex 5
  85.  
  86. ALTER TABLE angajati_cst
  87. MODIFY salariu NUMBER(6,2);
  88.  
  89. --Ex 6
  90.  
  91. ALTER TABLE angajati_cst
  92. MODIFY salariu NUMBER  DEFAULT 32121;
  93.  
  94. --Ex 7
  95.  
  96. ALTER TABLE angajati_cst
  97. MODIFY (comision NUMBER(2,2), salariu NUMBER(10,2));
  98.  
  99. --Ex 8
  100.  
  101. UPDATE  angajati_cst
  102. SET comision = 0.1
  103. WHERE
  104.     LOWER(job) LIKE 'a%';
  105.  
  106. --Ex9
  107.  
  108. ALTER TABLE angajati_cst
  109. MODIFY email varchar2(200);
  110.  
  111. --Ex 10
  112.  
  113. ALTER TABLE angajati_cst
  114. ADD nr_telefon NUMBER(10) DEFAULT '0756463728';
  115.  
  116. --Ex 11
  117.  
  118. SELECT* FROM angajati_cst;
  119. ALTER TABLE angajati_cst
  120. DROP  COLUMN nr_telefon;
  121.  
  122. --Ex 12
  123.  
  124. RENAME angajati_cst TO angajato13_cst;
  125.  
  126. --Ex 14
  127.  
  128. SELECT * FROM TAB;
  129. RENAME angajato13_cst TO angajati_cst;
  130.  
  131. TRUNCATE TABLE angajati_cst;
  132.  
  133. --Ex 15
  134.  
  135. CREATE TABLE departamente_cst (cod_dep NUMBER(2),
  136.                                 nume varchar2(15) CONSTRAINT nume_nnn NOT NULL,
  137.                                 cod_director NUMBER(4));
  138.                                
  139. --Ex 16
  140.  
  141. INSERT INTO departamente_cst(cod_dep, nume, cod_director)
  142. VALUES (10, 'administrativ', 100);
  143. INSERT INTO departamente_cst(cod_dep, nume, cod_director)
  144. VALUES(20, 'proiectare', 101);
  145. INSERT INTO departamente_cst(cod_dep, nume, cod_director)
  146. VALUES(30, 'programare', NULL);
  147.  
  148. --Ex 17
  149.  
  150. ALTER TABLE departamente_cst
  151. ADD CONSTRAINT cod_dep_pk PRIMARY KEY(cod_dep);
  152.  
  153. --Ex 18 a)
  154.  
  155. ALTER TABLE angajati_cst
  156. ADD CONSTRAINT cod_dep_fk FOREIGN KEY(cod_dep) REFERENCES departamente_cst(cod_dep);
  157.  
  158. --b)
  159.  
  160. DROP TABLE angajati_cst;
  161.  
  162.  
  163. CREATE TABLE angajati_cst ( cod_ang NUMBER(4)CONSTRAINT cod_ang_pk PRIMARY KEY,
  164.                             nume varchar2(20) CONSTRAINT nume_nn NOT NULL,
  165.                             prenume varchar2(20) CONSTRAINT  prenume_un UNIQUE,
  166.                             email CHAR(15) CONSTRAINT  email_un UNIQUE,
  167.                             data_ang DATE,
  168.                             job varchar2(10),
  169.                             cod_sef NUMBER(4) CONSTRAINT cod_sef_fk REFERENCES angajati_cst(cod_ang),
  170.                             salariu NUMBER(8,2),
  171.                             comision NUMBER(2,2),
  172.                             cod_dep NUMBER(2) CONSTRAINT cod_dep_ck CHECK (cod_dep > 0),
  173.                             CONSTRAINT salariu_ck CHECK (salariu > comision*100)
  174.                             );
  175.                            
  176.  
  177. --Ex 19
  178.  
  179. DROP TABLE angajati_cst;
  180.  
  181. CREATE TABLE angajati_cst ( cod_ang NUMBER(4),
  182.                             nume varchar2(20),
  183.                             prenume varchar2(20),
  184.                             email CHAR(15) ,
  185.                             data_ang DATE,
  186.                             job varchar2(10),
  187.                             cod_sef NUMBER(4) ,
  188.                             salariu NUMBER(8,2),
  189.                             comision NUMBER(2,2),
  190.                             cod_dep NUMBER(2),
  191.                             CONSTRAINT cod_ang_pk PRIMARY KEY(cod_ang),
  192.                             CONSTRAINT cod_sef_fk FOREIGN KEY(cod_sef) REFERENCES angajati_cst(cod_ang),
  193.                             CONSTRAINT comision_ck CHECK(comision >0),
  194.                             CONSTRAINT salariu_ck CHECK (salariu > comision *100),
  195.                             CONSTRAINT email_un UNIQUE(email),
  196.                             CONSTRAINT prenume_un UNIQUE(prenume)
  197.                             );
  198.                                
  199. --Ex 20
  200.  
  201. TRUNCATE TABLE departamente_cst;
  202.  
  203. SELECT * FROM USER_CONSTRAINTS;
  204.  
  205. --EX 23
  206.  
  207. SELECT
  208.     cod_ang_pk PRIMARY KEY, angajati_cst
  209. FROM
  210.     user_cosntraints
  211. WHERE
  212.     LOWER(angajati_cst) IN ('angajati_cst', 'departamente_cst');
  213.    
  214. --Ex 24
  215.  
  216. DROP TABLE angajati_cst;
  217.    
  218. CREATE TABLE angajati_cst ( cod_ang NUMBER(4),
  219.                             nume varchar2(20),
  220.                             prenume varchar2(20),
  221.                             email CHAR(15) CONSTRAINT email_nn NOT NULL,
  222.                             data_ang DATE,
  223.                             job varchar2(10),
  224.                             cod_sef NUMBER(4) ,
  225.                             salariu NUMBER(8,2),
  226.                             comision NUMBER(2,2),
  227.                             cod_dep NUMBER(2)
  228.                             );
  229. --Ex 25
  230.  
  231. INSERT INTO angajati_cst (cod_ang, nume, email, salariu, cod_dep)
  232. VALUES(150, 'nume', 'email', 2000, 50);
  233.  
  234. --Ex 26
  235.  
  236. INSERT INTO departamente_cst(cod_dep, nume, cod_director)
  237. VALUES (60, 'analiza', NULL);
  238.  
  239. DELETE FROM departamente_cst
  240. WHERE cod_dep = 60;
  241. ROLLBACK;
  242.  
  243. --Ex 30
  244.  
  245. INSERT INTO angajati_cst (cod_ang, nume, email, salariu, cod_dep)
  246. VALUES(114, 'nume4', 'email4', 20004, 50);
  247.  
  248. --Ex 31
  249.  
  250. ALTER TABLE angajati_cst
  251. ADD CONSTRAINT cod_dep_fk FOREIGN KEY(cod_dep) REFERENCES departamente_cst(cod_dep)
  252. ON DELETE CASCADE ;
  253.  
  254. --Ex 35
  255. ALTER TABLE angajati_cst
  256. ADD CONSTRAINT salariu_ck CHECK(salariu < 30000);
  257.  
  258. --Ex 34
  259.  
  260. UPDATE departamente_cst;
  261.  
  262.  
  263. DELETE FROM angajati_cst
  264. WHERE cod_dep = 102;
Advertisement
Add Comment
Please, Sign In to add comment