Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. Student database
  2. 1)Create database (DDL)
  3.  
  4. CREATE TABLE specialties(
  5. id NUMBER GENERATED BY DEFAULT AS IDENTITY,
  6. name VARCHAR2(100) NOT NULL,
  7. description VARCHAR2(300),
  8. PRIMARY KEY(id)
  9. );
  10.  
  11. CREATE TABLE students(
  12. fc_number NUMBER GENERATED BY DEFAULT AS IDENTITY,
  13. name VARCHAR2(100) NOT NULL,
  14. spec_id NUMBER NOT NULL,
  15. period NUMBER NOT NULL,
  16. email VARCHAR2(50) NOT NULL,
  17. PRIMARY KEY(fc_number),
  18. FOREIGN KEY(spec_id) REFERENCES specialties(id)
  19. );
  20.  
  21. CREATE TABLE lecturers(
  22. id NUMBER GENERATED BY DEFAULT AS IDENTITY,
  23. name VARCHAR2(100) NOT NULL,
  24. scientific_title VARCHAR2(15) NULL,
  25. mobile VARCHAR2(25),
  26. email VARCHAR2(50) NOT NULL,
  27. PRIMARY KEY(id)
  28. );
  29.  
  30. CREATE TABLE disciplines(
  31. id NUMBER GENERATED BY DEFAULT AS IDENTITY,
  32. description VARCHAR2(100) NOT NULL,
  33. semester NUMBER NOT NULL,
  34. lecturer_id NUMBER NULL,
  35. PRIMARY KEY(id),
  36. FOREIGN KEY(lecturer_id) REFERENCES lecturers(id)
  37. );
  38.  
  39. CREATE TABLE exam_scores(
  40. id NUMBER GENERATED BY DEFAULT AS IDENTITY,
  41. fc_number NUMBER NOT NULL,
  42. discipline_id NUMBER NOT NULL,
  43. score NUMBER NOT NULL,
  44. exam_date TIMESTAMP (2) NOT NULL,
  45. PRIMARY KEY(id),
  46. FOREIGN KEY(fc_number) REFERENCES students(fc_number),
  47. FOREIGN KEY(discipline_id) REFERENCES disciplines(id)
  48. );
  49.  
  50. 2)INSERT DATA (DML)
  51. -- Tuk te da si dobawqt primerni danni validni za tehnia sluchai wyw wsichki tablici
  52. INSERT INTO specialties(name, description) VALUES('Informatics','description');
  53.  
  54. 3)Tyrsene
  55. SELECT *
  56. FROM students
  57. WHERE name LIKE '%Ivanov%';
  58.  
  59. SELECT *
  60. FROM students
  61. WHERE fc_number = 123456;
  62.  
  63. Tyrsene na ocenki na student
  64. SELECT *
  65. FROM exam_scores e
  66. JOIN students s ON e.fc_number = s.fc_number
  67. JOIN disciplines d ON e.discipline_id = d.id
  68. WHERE s.fc_number = 123456
  69. ORDER BY exam_date;
  70.  
  71. Tyrsene na ocenki po disciplina
  72. SELECT *
  73. FROM exam_scores e
  74. JOIN students s ON e.fc_number = s.fc_number
  75. JOIN disciplines d ON e.discipline_id = d.id
  76. WHERE e.discipline_id = 123456
  77. ORDER BY exam_date;
  78.  
  79. 4)Spravki
  80. 4.1. Akademi4na spravka
  81. SELECT *
  82. FROM exam_scores e
  83. JOIN students s ON e.fc_number = s.fc_number
  84. JOIN disciplines d ON e.discipline_id = d.id
  85. WHERE s.fc_number = 123456
  86. ORDER BY d.semester, e.exam_date;
  87.  
  88. 4.2.
  89. SELECT e.fc_number, s.name, AVG(score)
  90. FROM exam_scores e
  91. JOIN students s ON e.fc_number = s.fc_number
  92. WHERE e.discipline_id = 123
  93. AND s.spec_id = 234
  94. GROUP BY e.fc_number, s.name
  95. ORDER BY 3 DESC, s.name;
  96.  
  97. 4.3.
  98. SELECT e.discipline_id, d.description, AVG(score)
  99. FROM exam_scores e
  100. JOIN disciplines d ON e.discipline_id = d.id
  101. GROUP BY e.discipline_id, d.description
  102. ORDER BY 3 DESC, d.description;
  103.  
  104. 4.4.SELECT e.fc_number, s.name, AVG(score)
  105. FROM exam_scores e
  106. JOIN students s ON e.fc_number = s.fc_number
  107. GROUP BY e.fc_number, s.name
  108. ORDER BY 3 DESC, s.name LIMIT 10;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement