Advertisement
Guest User

EducationSystem

a guest
Mar 21st, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. CREATE Database MiniProject
  2.  
  3. DROP TABLE Education, Class, Student, StudentHasClass;
  4.  
  5. --Assignment 1
  6.  
  7. CREATE TABLE Education(
  8. Name VARCHAR(20),
  9. U_ID INT NOT NULL,
  10. StartDate DATE,
  11. SlutDate DATE,
  12. PRIMARY KEY(U_ID),
  13. );
  14.  
  15. CREATE TABLE Class(
  16. Name VARCHAR(20),
  17. Class_ID INT NOT NULL,
  18. U_ID INT NOT NULL,
  19. PRIMARY KEY(Class_ID),
  20. FOREIGN KEY(U_ID) REFERENCES Education(U_ID)
  21. );
  22.  
  23. CREATE TABLE Student(
  24. Name VARCHAR(30),
  25. Student_ID INT NOT NULL,
  26. Adress VARCHAR (40),
  27. PRIMARY KEY(Student_ID),
  28. );
  29.  
  30. CREATE TABLE StudentHasClass(
  31. Student_ID INT NOT NULL,
  32. Class_ID INT NOT NULL,
  33. Attempts INT NOT NULL,
  34. Passed INT NOT NULL,
  35. Grade INT NOT NULL,
  36. FOREIGN KEY (Student_ID) REFERENCES Student(Student_ID),
  37. FOREIGN KEY (Class_ID) REFERENCES Class(Class_ID)
  38. );
  39.  
  40. --Assignment 2
  41.  
  42. INSERT INTO Student(Name, Student_ID, Adress)
  43. VALUES('Albert Brown', 111990, 'Main Road 1b');
  44.  
  45. INSERT INTO Student(Name, Student_ID, Adress)
  46. VALUES('Charles Davidson', 221991, 'Beach Road 70');
  47.  
  48. INSERT INTO Student(Name, Student_ID, Adress)
  49. VALUES('Emma Finley', 331992, 'Side Road 42');
  50.  
  51. INSERT INTO Student(Name, Student_ID, Adress)
  52. VALUES('George Hanson', 441993, 'Country Road 91');
  53.  
  54. INSERT INTO Student(Name, Student_ID, Adress)
  55. VALUES('Irene Jansen', 551994, 'City Road 3d');
  56.  
  57. INSERT INTO Education(Name, U_ID, StartDate, SlutDate)
  58. VALUES('Datamatician', 98765, '2018-08-27', '2020-05-28');
  59.  
  60. INSERT INTO Class(Name, Class_ID, U_ID)
  61. VALUES('Programming', 1234, 98765);
  62.  
  63. INSERT INTO Class(Name, Class_ID, U_ID)
  64. VALUES('System Development', 3456, 98765);
  65.  
  66. INSERT INTO Class(Name, Class_ID, U_ID)
  67. VALUES('Databases', 5678, 98765);
  68.  
  69. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  70. VALUES(111990, 1234, 1, 4, 1);
  71.  
  72. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  73. VALUES(111990, 3456, 1, 7, 1);
  74.  
  75. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  76. VALUES(111990, 5678, 2, 10, 1);
  77.  
  78. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  79. VALUES(221991, 1234, 2, 7, 1);
  80.  
  81. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  82. VALUES(221991, 3456, 2, 7, 1);
  83.  
  84. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  85. VALUES(221991, 5678, 1, 10, 1);
  86.  
  87. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  88. VALUES(331992, 1234, 1, 2, 1);
  89.  
  90. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  91. VALUES(331992, 3456, 1, 7, 1);
  92.  
  93. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  94. VALUES(331992, 5678, 1, 4, 1);
  95.  
  96. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  97. VALUES(441993, 1234, 3, 4, 1);
  98.  
  99. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  100. VALUES(441993, 3456, 2, 7, 1);
  101.  
  102. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  103. VALUES(441993, 5678, 4, 12, 1);
  104.  
  105. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  106. VALUES(551994, 1234, 1, 10, 1);
  107.  
  108. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  109. VALUES(551994, 3456, 1, 12, 1);
  110.  
  111. INSERT INTO StudentHasClass(Student_ID, Class_ID, Attempts, Grade, Passed)
  112. VALUES(551994, 5678, 1, 10, 1);
  113.  
  114. --Assignment 3.1
  115.  
  116. SELECT Name, Student.Student_ID, StudentHasClass.Student_ID, Class_ID, Attempts, Grade
  117. FROM StudentHasClass JOIN Student ON Student.Student_ID = StudentHasClass.Student_ID
  118. WHERE Grade = 12
  119.  
  120. --Assignment 3.2
  121.  
  122. SELECT Student.Name
  123. FROM Student, Education, StudentHasClass
  124. WHERE Student.Student_ID = StudentHasClass.Student_ID
  125. AND Attempts = 1
  126. EXCEPT
  127. SELECT Student.Name
  128. FROM Student, StudentHasClass
  129. WHERE Student.Student_ID = StudentHasClass.Student_ID
  130. AND
  131. Attempts > 1
  132.  
  133. --Assignment 3.3
  134.  
  135. SELECT AVG(Grade) AS 'Programming'
  136. FROM StudentHasClass
  137. WHERE Class_ID = 1234
  138.  
  139. SELECT AVG(Grade) AS 'System Development'
  140. FROM StudentHasClass
  141. WHERE Class_ID = 3456
  142.  
  143. SELECT AVG(Grade) AS 'Databases'
  144. FROM StudentHasClass
  145. WHERE Class_ID = 5678
  146.  
  147. --Assignment 4
  148.  
  149. DROP PROCEDURE PrintExams;
  150.  
  151. GO
  152. CREATE PROCEDURE PrintExams
  153. @Name VARCHAR(30)
  154. AS
  155. BEGIN
  156. SELECT *
  157. FROM StudentHasClass JOIN Student ON Student.Student_ID = StudentHasClass.Student_ID
  158. WHERE StudentHasClass.Grade > 0
  159. AND Student.Name = @Name
  160. END
  161.  
  162. EXEC PrintExams 'Emma Finley'
  163.  
  164. --Assignment 5: Create a trigger that stops the insertion of a grade for a student in a class the student has already passed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement