Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1. Lab-4
  2. Objective: Join Operations , Intetegrity constraints
  3.  
  4.  
  5. Consider the following relational schema
  6. Employe(emp-id, name, address, telephone, salary, age)
  7. Works- on (emp-id, project-id, join-date )
  8. Project(project-id, project-name, city, duration, budget)
  9. Write SQL statements for the following
  10. 1. SQL DDL for creating the above relations. Couple the above table with necessary primary key, foreign key and enforce cascade update and cascade delete referential integrity constraints. The field telephone should be unique and age should be in the range 0 to 100.
  11. 2. Insert any records of any five employees.
  12. 3. Insert any 4 project records.
  13. 4. Insert any 2 record in work relation.
  14. 5. Perform join on
  15. i. employye inner join works-on
  16. ii. employee join works join projects
  17. iii. employee left outer join works--on
  18. iv. works_on right outer join Project
  19. v. employee full outer join works-on
  20. 6. Find the name of employees with the name of project they work on.
  21. 7. Find the name and address all employees whose salary of employee is greater than or equal to 20000 and works in DBMS project.
  22. 8. List the name of employees whose name starts with “r” and ends with “m”
  23. 9. Display the name of all employee who work in atleast one project.
  24. 10. Display the name of all employee who work in atleast two project.
  25.  
  26. 11. Display the name of all employee who do not work in any project using
  27. i. Concept of inner join and set operation
  28. ii. Concept of left outer join
  29. 12. Display the name of all Project on which no employee work
  30. iii. Concept inner join and set operation
  31. iv. Concept of right outer join
  32. 13. Delete the record of employee who work in project-name ‘DBMS-project’
  33. 14. Update database such that employee with employee id 2 no more works in project named ‘Network’
  34. 15. Increase the salary of all the employees by 15% who work in DBMS-project
  35. 16. List the name of Employee whose name starts with “s”, not having “C” has third character and ends with any character in the range “m” to “y”
  36. 17. Display the name of employee with maximum age.
  37.  
  38.  
  39.  
  40.  
  41.  
  42. 1.
  43.  
  44. create table Project
  45. (
  46. project_id int primary key,
  47. project_name varchar(50),
  48. city varchar(40),
  49. duration int,
  50. budget float
  51. )
  52.  
  53. create table Employee
  54. (
  55. emp_id int primary key,
  56. name varchar(50),
  57. address varchar(100),
  58. telephone varchar(20) unique,
  59. salary float,
  60. age int check(age>=0 and age<=100)
  61.  
  62. )
  63.  
  64.  
  65. create table works_on
  66. (
  67. emp_id int foreign key references Employee(emp_id) on delete cascade on update cascade,
  68. project_id int foreign key references Project(project_id) on delete cascade on update cascade,
  69. join_date date,
  70. primary key(emp_id,project_id)
  71. )
  72.  
  73.  
  74.  
  75.  
  76.  
  77. 2.
  78. insert into Employee values(1,'Ram','Pkr','90950',55000,25)
  79. insert into Employee values(2,'Shyam','ktm','905590',65000,25)
  80. insert into Employee values(3,'Rita','Pkr','90930',55700,25)
  81. insert into Employee values(4,'hari','btl','90950',58800,25)
  82. insert into Employee values(5,'bipin','ktm','90590',590000,25)
  83.  
  84. 3.
  85. insert into project values (1001,'DBMS','Pkr',5,100000)
  86. insert into project values (1002,'ABC','Pkr',5,100000)
  87. insert into project values (1003,'NETWORK','KTM',5,100000)
  88. insert into project values (1004,'Programming','Btl',5,30000)
  89.  
  90.  
  91.  
  92.  
  93.  
  94. 4
  95. insert into works_on values(1,1001,'2015/07/09')
  96. insert into works_on values(1,1002,'2015/07/09')
  97. insert into works_on values(2,1003,'2015/07/09')
  98.  
  99.  
  100.  
  101. 5.
  102. i.
  103. select * from employee e join works_on w on e.emp_id=w.emp_id
  104.  
  105.  
  106.  
  107. ii.
  108. select * from employee e join works_on w on e.emp_id=w.emp_id join project p on w.project_id=p.project_id
  109.  
  110. iii.
  111. select * from employee e left outer join works_on w on e.emp_id=w.emp_id
  112.  
  113.  
  114.  
  115.  
  116. iv.
  117. select * from works_on w right outer join project p on w.project_id=p.project_id
  118.  
  119.  
  120.  
  121. v.
  122.  
  123. select * from employee e full outer join works_on w on e.emp_id=w.emp_id
  124.  
  125.  
  126. 6.
  127. select * from employee e join works_on w on e.emp_id=w.emp_id join Project p on w.project_id=p.project_id
  128.  
  129.  
  130. 7.
  131. select name,address from employee e join works_on w on e.emp_id=w.emp_id join Project p on w.project_id=p.project_id where p.project_name='DBMS' and salary>20000
  132.  
  133.  
  134. 8.
  135. select * from Employee where name like 'r%m'
  136.  
  137.  
  138.  
  139. 9.
  140. select * from Employee e join works_on w on e.emp_id=w.emp_id
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153. 10.
  154. select name from ( select e.emp_id,e.name, COUNT(*) as number from Employee e join works_on w on e.emp_id=w.emp_id group by e.emp_id,e.name having COUNT(*)>=2)as tmp
  155.  
  156. 11
  157. i.
  158. select name from Employee
  159. except
  160. select e.name from Employee e join works_on w on e.emp_id=w.emp_id
  161.  
  162.  
  163. ii.
  164. select e.name from Employee e left outer join works_on w on e.emp_id=w.emp_id where w.emp_id is null
  165.  
  166.  
  167. 12.
  168. i.
  169. select project_name from project
  170. except
  171. select project_name from works_on w join Project p on w.project_id=p.project_id
  172.  
  173. ii.
  174. select project_name from works_on w right outer join Project p on w.project_id=p.project_id where w.emp_id is null
  175.  
  176.  
  177.  
  178.  
  179. 13.
  180. Delete from employee where emp_id in ( select e.emp_id from employee e join works_on w on e.emp_id=w.emp_id join project p on w.project_id=p.project_id where project_name='DBMS')
  181.  
  182. It will result employee,works_on and project relation as below
  183.  
  184.  
  185.  
  186.  
  187. 14
  188. delete from works_on where project_id in (select project_id from Project where project_name='Network') and emp_id=2
  189.  
  190. 15
  191. Update Employee set salary =salary*1.15 where emp_id in ( select e.emp_id from employee e join works_on w on e.emp_id=w.emp_id join project p on w.project_id=p.project_id where project_name='DBMS')
  192.  
  193. Previously
  194. -
  195.  
  196.  
  197. After update
  198.  
  199.  
  200.  
  201.  
  202. 16,
  203. select * from Employee where name like 'S_[^c]%[m-y]'
  204.  
  205.  
  206.  
  207. 18.
  208.  
  209.  
  210. select * from Employee where age in (select MAX(age) from Employee)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement