Advertisement
icatalin

BD LAB 9

Dec 17th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.40 KB | None | 0 0
  1. INSERT INTO jobs
  2. VALUES ('job_id', 'job_title', 10000, 70000);
  3. ROLLBACK;
  4.  
  5. CREATE TABLE EMP_ALX AS
  6. SELECT * FROM employees;
  7.  
  8. CREATE TABLE DEPT_ALX AS
  9. SELECT * FROM departments;
  10.  
  11. DESC employees;
  12. DESC emp_alx;
  13.  
  14. --4
  15.  
  16. ALTER TABLE emp_alx
  17. ADD CONSTRAINT pk_emp_alx PRIMARY KEY(employee_id);
  18.  
  19. ALTER TABLE dept_alx
  20. ADD CONSTRAINT pk_dept_alx PRIMARY KEY(department_id);
  21.  
  22. ALTER TABLE emp_alx
  23. ADD CONSTRAINT fk_emp_alx
  24. FOREIGN KEY(department_id) REFERENCES dept_alx(department_id);
  25.  
  26. --5
  27. INSERT INTO dept_alx(department_id, department_name)
  28. VALUES(300, 'Programare');
  29.  
  30. INSERT INTO dept_alx(department_id, department_name, location_id)
  31. VALUES(300, 'Programare', NULL);
  32.  
  33. ROLLBACK;
  34.  
  35. --6
  36. INSERT INTO emp_alx
  37. VALUES (250, NULL, 'Nume', 'email@gmail.com', NULL, sysdate,'SA_REP', NULL, NULL, NULL, 300);
  38.  
  39. INSERT INTO emp_alx (employee_id, last_name, email, hire_date, job_id, department_id)
  40. VALUES(251, 'Nume', 'email@gmail.com', sysdate, 'SA_REP', 300);
  41. commit;
  42.  
  43. --9
  44. CREATE TABLE emp1_alx AS
  45. SELECT * FROM employees;
  46.  
  47. DELETE emp1_alx;
  48.  
  49. INSERT INTO emp1_alx
  50.   SELECT *
  51.   FROM employees
  52.   WHERE commission_pct>0.25;
  53.  
  54. --10
  55. SELECT USER
  56. FROM dual;
  57.  
  58. INSERT INTO emp_alx
  59. SELECT 0, USER, USER, 'TOTAL', 'TOTAL', sysdate, 'TOTAL', SUM(salary), avg(commission_pct), NULL, NULL
  60. FROM employees;
  61.  
  62. --12
  63. CREATE TABLE EMP3_ALX AS
  64. SELECT *
  65. FROM employees;
  66. DELETE FROM emp3_alx;
  67.  
  68. INSERT FIRST
  69. WHEN SALARY <= 5000 THEN INTO emp1_alx
  70. WHEN salary >5000 AND salary <10000 THEN INTO emp2_alx
  71. WHEN salary >= 10000 THEN INTO emp3_alx
  72. SELECT * FROM employees;
  73. ROLLBACK;
  74.  
  75. --13
  76. INSERT FIRST
  77. WHEN department_id=80 THEN INTO emp0_alx
  78. WHEN SALARY <= 5000 THEN INTO emp1_alx
  79. WHEN salary >5000 AND salary <10000 THEN INTO emp2_alx
  80. WHEN salary >= 10000 THEN INTO emp3_alx
  81. SELECT * FROM employees;
  82. ROLLBACK;
  83.  
  84. --14
  85. UPDATE emp_alx
  86. SET salary=salary+0.05*salary;
  87.  
  88. --15
  89. UPDATE emp_alx
  90. SET job_id= 'SA_REP'
  91. WHERE department_id = 80;
  92.  
  93. --16
  94. UPDATE emp_alx
  95. SET salary=salary+1000, department_id=20
  96. WHERE employee_id=(
  97.     SELECT employee_id
  98.     FROM employees
  99.     WHERE LOWER(first_name || ' ' || last_name) = 'douglas grant');
  100.    
  101. UPDATE dept_alx
  102. SET manager_id=(
  103.     SELECT employee_id
  104.     FROM employees
  105.     WHERE LOWER(first_name || ' ' || last_name) = 'douglas grant')
  106. WHERE department_id=20;
  107.  
  108. --17
  109. UPDATE emp_alx e
  110. SET (salary, commission_pct)=(
  111.     SELECT salary, commission_pct
  112.     FROM employees
  113.     WHERE employee_id=e.manager_id)
  114. WHERE salary = (
  115.     SELECT MIN(salary)
  116.     FROM employees);
  117.    
  118. --18
  119. UPDATE emp_alx e
  120. SET email= SUBSTR(last_name,1,1) || NVL(first_name,'.')
  121. WHERE salary = (
  122.     SELECT MAX(salary)
  123.     FROM emp_alx
  124.     WHERE e.department_id=department_id
  125.     GROUP BY department_id);
  126. ROLLBACK;
  127.  
  128. --19
  129. UPDATE emp_alx e
  130. SET salary=(
  131.     SELECT avg(salary)
  132.     FROM emp_alx)
  133. WHERE hire_date=(
  134.     SELECT MIN(hire_date)
  135.     FROM emp_alx
  136.     WHERE department_id= e.department_id
  137.     GROUP BY department_id);
  138.    
  139. --20
  140. UPDATE emp_alx
  141. SET (job_id, department_id) =(
  142.     SELECT job_id, department_id
  143.     FROM emp_alx
  144.     WHERE employee_id = 205)
  145. WHERE employee_id=114;
  146.  
  147. --22
  148. DELETE FROM dept_alx;
  149. --nu merge
  150.  
  151. --23
  152. DELETE FROM emp_alx
  153. WHERE commission_pct IS NULL;
  154. ROLLBACK;
  155.  
  156. --24
  157. DELETE FROM dept_alx
  158. WHERE department_id IN(
  159.     SELECT department_id
  160.     FROM emp_alx JOIN dept_alx USING(department_id)
  161.     GROUP BY department_id
  162.     HAVING COUNT(employee_id)=0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement