Guest User

Untitled

a guest
Dec 11th, 2018
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.66 KB | None | 0 0
  1. create database HR
  2.  
  3. create table COUNTRIES(
  4. C_ID int not null primary key,
  5. C_NAME varchar(40),
  6. R_ID int
  7. )
  8.  
  9. select * from COUNTRIES
  10.  
  11. create table DEPARTMENTS(
  12. D_ID int not null primary key,
  13. D_NAME varchar(40),
  14. M_ID int,
  15. L_ID int
  16. )
  17.  
  18. create table EMPLOYEES(
  19. E_ID int not null,
  20. E_FIRST_NAME varchar(40) not null ,
  21. E_LAST_NAME varchar(40) not null,
  22. E_EMAIL varchar(40) not null ,
  23. E_PHONE_NUMBER varchar(40),
  24. E_HIRE_DATE date not null ,
  25. J_ID int not null ,
  26. E_SALARY int not null check (E_SALARY > 40000),
  27. E_COMMISSION_PCT float,
  28. M_ID int,
  29. D_ID int,
  30. constraint emp_pk primary key(E_ID)
  31. )
  32.  
  33.  
  34. create table JOBS(
  35. J_ID int not null primary key,
  36. J_TITLE varchar(40) not null ,
  37. J_MIN_SALARY int not null ,
  38. J_MAX_SALARY int not null ,
  39. )
  40.  
  41. create table JOB_HISTORY(
  42. E_ID int not null primary key,
  43. JH_START_DATE date not null ,
  44. JH_END_DATE date not null ,
  45. J_ID int not null,
  46. D_ID int,
  47. )
  48.  
  49. create table LOCATIONS(
  50. L_ID int not null primary key,
  51. L_ADDRESS varchar(40),
  52. L_POSTAL_CODE varchar(40) ,
  53. L_CITY varchar(40) not null ,
  54. L_STATE_PROVINCE varchar(40),
  55. C_ID int,
  56. )
  57.  
  58. create table REGIONS(
  59. R_ID int not null primary key,
  60. R_NAME varchar(40),
  61. )
  62.  
  63.  
  64.  
  65. ALTER TABLE COUNTRIES
  66. ADD CONSTRAINT FK_COUNTRIES_REGIONS
  67. FOREIGN KEY (R_ID) REFERENCES REGIONS(R_ID);
  68.  
  69. ALTER TABLE DEPARTMENTS
  70. ADD CONSTRAINT FK_DEPARTMENTS_LOCATIONS
  71. FOREIGN KEY (L_ID) REFERENCES LOCATIONS(L_ID);
  72.  
  73. ALTER TABLE EMPLOYEES
  74. ADD CONSTRAINT FK_EMPLOYEES_JOBS
  75. FOREIGN KEY (M_ID) REFERENCES JOBS(J_ID);
  76.  
  77. ALTER TABLE EMPLOYEES
  78. ADD CONSTRAINT FK_EMPLOYEES_DEPARTMENTS
  79. FOREIGN KEY (D_ID) REFERENCES DEPARTMENTS(D_ID);
  80.  
  81. ALTER TABLE EMPLOYEES
  82. ADD CONSTRAINT FK_EMPLOYEES_JOBS2
  83. FOREIGN KEY (J_ID) REFERENCES JOBS(J_ID);
  84.  
  85.  
  86. ALTER TABLE JOB_HISTORY
  87. ADD CONSTRAINT FK_JOB_HISTORY_JOBS
  88. FOREIGN KEY (J_ID) REFERENCES JOBS(J_ID);
  89.  
  90. alter table countries
  91. alter column c_name varchar(50)
  92.  
  93.  
  94. ALTER TABLE JOB_HISTORY
  95. ADD CONSTRAINT FK_JOB_HISTORY_DEPARTMENTS
  96. FOREIGN KEY (D_ID) REFERENCES DEPARTMENTS(D_ID);
  97.  
  98. ALTER TABLE LOCATIONS
  99. ADD CONSTRAINT FK_LOCATIONS_COUNTRIES
  100. FOREIGN KEY (C_ID) REFERENCES COUNTRIES(C_ID);
  101.  
  102.  
  103. INSERT INTO JOBS(J_ID, J_TITLE, J_MIN_SALARY,J_MAX_SALARY)
  104. VALUES (1, 'manager', 65000, 150000);
  105. INSERT INTO JOBS(J_ID, J_TITLE, J_MIN_SALARY,J_MAX_SALARY)
  106. VALUES (2, 'Peon', 10000, 25000);
  107. INSERT INTO JOBS(J_ID, J_TITLE, J_MIN_SALARY,J_MAX_SALARY)
  108. VALUES (3, 'Supervisor', 35000, 55000);
  109. INSERT INTO JOBS(J_ID, J_TITLE, J_MIN_SALARY,J_MAX_SALARY)
  110. VALUES (4, 'developer', 65000, 120000);
  111. INSERT INTO JOBS(J_ID, J_TITLE, J_MIN_SALARY,J_MAX_SALARY)
  112. VALUES (5, 'accountant', 55000, 89000);
  113.  
  114. select * from JOBS
  115.  
  116. INSERT INTO REGIONS(R_ID, R_NAME)
  117. VALUES (1, 'london');
  118. INSERT INTO REGIONS(R_ID, R_NAME)
  119. VALUES (2, 'east midlands');
  120. INSERT INTO REGIONS(R_ID, R_NAME)
  121. VALUES (3, 'north west');
  122. INSERT INTO REGIONS(R_ID, R_NAME)
  123. VALUES (4, 'south west');
  124. INSERT INTO REGIONS(R_ID, R_NAME)
  125. VALUES (5, 'north east');
  126. INSERT INTO REGIONS(R_ID, R_NAME)
  127. VALUES (6, 'south east');
  128. INSERT INTO REGIONS(R_ID, R_NAME)
  129. VALUES (7, 'balochistan');
  130. INSERT INTO REGIONS(R_ID, R_NAME)
  131. VALUES (8, 'hazara, pakistan');
  132. INSERT INTO REGIONS(R_ID, R_NAME)
  133. VALUES (9, 'neeli bar');
  134. INSERT INTO REGIONS(R_ID, R_NAME)
  135. VALUES (10, 'waziristan');
  136.  
  137. select * from REGIONS
  138.  
  139.  
  140. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  141. VALUES(1,'UK',1);
  142. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  143. VALUES(2,'UK',2);
  144. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  145. VALUES(3,'UK',3);
  146. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  147. VALUES(4,'UK',4);
  148. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  149. VALUES(5,'UK',5);
  150. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  151. VALUES(6,'UK',6);
  152. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  153. VALUES(7,'PAKISTAN',7);
  154. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  155. VALUES(8,'PAKISTAN',8);
  156. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  157. VALUES(9,'PAKISTAN',9);
  158. INSERT INTO COUNTRIES(C_ID,C_NAME,R_ID)
  159. VALUES(10,'PAKISTAN',10);
  160.  
  161. select * from COUNTRIES
  162.  
  163. INSERT INTO LOCATIONS(L_ID,L_ADDRESS,L_POSTAL_CODE,L_CITY,L_STATE_PROVINCE,C_ID)
  164. VALUES(1,'street 102','1590','london','london',1)
  165. INSERT INTO LOCATIONS(L_ID,L_ADDRESS,L_POSTAL_CODE,L_CITY,L_STATE_PROVINCE,C_ID)
  166. VALUES(2,'street 130','3597','east midlands','east midlands',2)
  167. INSERT INTO LOCATIONS(L_ID,L_ADDRESS,L_POSTAL_CODE,L_CITY,L_STATE_PROVINCE,C_ID)
  168. VALUES(3,'street 154','3625','north west','north west',3)
  169. INSERT INTO LOCATIONS(L_ID,L_ADDRESS,L_POSTAL_CODE,L_CITY,L_STATE_PROVINCE,C_ID)
  170. VALUES(4,'street 47','1257','hazara, pakistan','hazara, pakistan',8)
  171. INSERT INTO LOCATIONS(L_ID,L_ADDRESS,L_POSTAL_CODE,L_CITY,L_STATE_PROVINCE,C_ID)
  172. VALUES(5,'street 229','1212','neeli bar','neeli bar',9)
  173.  
  174. select * from LOCATIONS
  175.  
  176. INSERT INTO DEPARTMENTS(D_ID,D_NAME,L_ID)
  177. VALUES(1,'accounts',1)
  178. INSERT INTO DEPARTMENTS(D_ID,D_NAME,L_ID)
  179. VALUES(2,'HR',3)
  180. INSERT INTO DEPARTMENTS(D_ID,D_NAME,L_ID)
  181. VALUES(3,'management',4)
  182. INSERT INTO DEPARTMENTS(D_ID,D_NAME,L_ID)
  183. VALUES(4,'staff',5)
  184. INSERT INTO DEPARTMENTS(D_ID,D_NAME,L_ID)
  185. VALUES(5,'IT',2)
  186.  
  187. select * from DEPARTMENTS
  188.  
  189.  
  190. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  191. VALUES(1,'ali','akbar','ali@gmail.com','0315478458','2012-11-11',1,'105000',2.5,1,1)
  192. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  193. VALUES(2,'jhon','josh','jhon@gmail.com','0315254147','2011-10-10',1,'95000',2.7,2,2)
  194. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  195. VALUES(3,'yasmeen','bajwa','yasmeen@yahoo.com','0325478415','2010-09-05',1,'85000',1.5,2,3)
  196. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  197. VALUES(4,'seena','jalwa','seena@gmail.com','0317853694','2009-05-07',3,'45000',3.7,2,3)
  198. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  199. VALUES(5,'iqra','riaz','iqra@yahoo.com','032555555','2016-06-06',5,'85000',1.5,1,5)
  200.  
  201. select * from EMPLOYEES
  202.  
  203. update DEPARTMENTS SET M_ID='1' where D_ID=1
  204. update DEPARTMENTS SET M_ID='2' where D_ID=2
  205. update DEPARTMENTS SET M_ID='2' where D_ID=3
  206. update DEPARTMENTS SET M_ID='1' where D_ID=4
  207. update DEPARTMENTS SET M_ID='2' where D_ID=5
  208. update DEPARTMENTS SET M_ID='1' where D_ID=6
  209.  
  210.  
  211. INSERT INTO JOB_HISTORY(E_ID,JH_START_DATE,JH_END_DATE,J_ID,D_ID)
  212. VALUES (1,'2012-11-11','2017-11-11',1,1)
  213. INSERT INTO JOB_HISTORY(E_ID,JH_START_DATE,JH_END_DATE,J_ID,D_ID)
  214. VALUES (2,'2016-06-06','2018-01-02',5,5)
  215.  
  216.  
  217. --1
  218. create trigger Del on Locations
  219. instead of delete as
  220. begin
  221. Print 'You are not allowed to delete location.'
  222. end
  223.  
  224. delete from LOCATIONS where L_ID = 1
  225.  
  226.  
  227. --2
  228. create trigger Ins on Employees
  229. for insert as
  230. begin
  231. Print 'You have inserted a tuple.'
  232. end
  233.  
  234. select * from DEPARTMENTS
  235.  
  236. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  237. VALUES(6,'Ahmed','Ali','ahmed@gmail.com','03154765458','2012-04-11',3,'100000',2.5,1,2)
  238.  
  239. --3
  240. create trigger err on Employees
  241. instead of insert as
  242. declare @var int
  243. select @var = inserted.D_ID from inserted
  244. if @var not in(select D_ID from DEPARTMENTS)
  245. begin
  246. Print 'Invalid Department.'
  247. end
  248.  
  249. drop trigger err
  250.  
  251. INSERT INTO EMPLOYEES(E_ID,E_FIRST_NAME,E_LAST_NAME,E_EMAIL,E_PHONE_NUMBER,E_HIRE_DATE,J_ID,E_SALARY,E_COMMISSION_PCT,M_ID,D_ID)
  252. VALUES(6,'Ahmed','Ali','ahmed@gmail.com','03154765458','2012-04-11',3,'100000',2.5,1,6)
  253.  
  254. select * from EMPLOYEES
  255. --4
  256. create trigger delet on Employees
  257. instead of delete as
  258. declare @exp int
  259. select @exp = select DATEDIFF(year, E.E_HIRE_DATE, GETDATE()) from EMPLOYEES E
Add Comment
Please, Sign In to add comment