Guest User

Students && Subjects

a guest
Nov 9th, 2022
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.06 KB | Source Code | 0 0
  1. --Създаване на база данни
  2. CREATE DATABASE StudentsPP_12v
  3.  
  4. --Избор на база данни с която да работим
  5. USE StudentsPP_12v
  6.  
  7. --Създаване на таблицата Градове с колони Id, Име(до 15 символа)
  8. CREATE TABLE Towns
  9. (
  10.     Id INT PRIMARY KEY IDENTITY NOT NULL,
  11.     [Name] NVARCHAR(15) NOT NULL
  12. )
  13.  
  14. --Добавяне на записи в таблицата с градовете
  15. INSERT INTO Towns ([Name])
  16. VALUES ('Видин'), ('София'), ('Пловдив'), ('Бургас')
  17.  
  18. --Извеждане съдържанието на таблицата с градовете
  19. SELECT *
  20. FROM Towns
  21.  
  22. --Създаване на таблицата Предмети с колони Id, Име(до 30 символа)
  23. CREATE TABLE Subjects
  24. (
  25.     Id INT PRIMARY KEY IDENTITY NOT NULL,
  26.     [Name] NVARCHAR(30) NOT NULL
  27. )
  28.  
  29. --Добавяне на записи в таблицата с предметите
  30. INSERT INTO Subjects ([Name])
  31. VALUES
  32.     ('Математика'),
  33.     ('Информатика'),
  34.     ('Биология и здравно образование'),
  35.     ('География и икономика'),
  36.     ('Английски език'),
  37.     ('Информационни технологии')
  38.  
  39. --Извеждане съдържанието на таблицата с предметите
  40. SELECT *
  41. FROM Subjects
  42.  
  43. --Създаване на таблицата Ученици с колони Id, Име, Клас, Град, Предмети(2бр)
  44. CREATE TABLE Students
  45. (
  46.     Id INT PRIMARY KEY IDENTITY NOT NULL,
  47.     [Name] NVARCHAR(30) NOT NULL,
  48.     [Class] NVARCHAR(3) NOT NULL,
  49.     TownId INT FOREIGN KEY REFERENCES Towns(Id),
  50.     Subject1 INT FOREIGN KEY REFERENCES Subjects(Id),
  51.     Subject2 INT FOREIGN KEY REFERENCES Subjects(Id),
  52. )
  53.  
  54. --Добавяне на записи в таблицата с учениците
  55. INSERT INTO Students([Name], [Class], TownId, Subject1, Subject2)
  56. VALUES
  57.     ('Иван Иванов', '12а', NULL, 3, NULL),
  58.     ('Петър Петров', '12а', 1, 1, 3),
  59.     ('Таня Ивова', '12б', 3, 2, NULL),
  60.     ('Георги Илиянов', '12в', 2, 5, NULL),
  61.     ('Петко Мишев', '12б', NULL, 3, 2),
  62.     ('Дияна Асенова', '12г', 2, 4, 1)
  63.  
  64. --Извеждане съдържанието на таблицата с учениците
  65. SELECT *
  66. FROM Students
  67.  
  68.  
  69. --Извеждане на всички ученици от град с Id 2
  70. SELECT *
  71. FROM Students
  72. WHERE TownId = 2
  73.  
  74.  
  75. --Извеждане на всички ученици които нямат втори профилиращ предмет
  76. SELECT *
  77. FROM Students
  78. WHERE Subject2 IS NULL
  79.  
  80.  
  81. --Извеждане на всички ученици с избрани два профилиращи предмета
  82. SELECT *
  83. FROM Students
  84. WHERE Subject1 IS NOT NULL AND Subject2 IS NOT NULL
  85.  
  86.  
  87. --Извеждане на всички ученици за които е въведен град с имената на градовете
  88. SELECT s.[Name], s.[Class], t.[Name]
  89. FROM Students s
  90. JOIN Towns t ON s.TownId = t.Id
  91. WHERE s.TownId IS NOT NULL
  92.  
  93.  
  94. --Извеждане на всички ученици с имената първия профилиращ предмет
  95. SELECT st.[Name] AS 'Име на ученик',
  96.        st.[Class] AS 'Клас',
  97.        sub.[Name] AS 'Профилиращ предмет'
  98. FROM Students st
  99. JOIN Subjects sub ON st.Subject1 = sub.Id
  100. WHERE st.Subject1 IS NOT NULL
  101.  
  102.  
  103. --Извеждане на всички ученици с имената на градовете и предметите, за тези които са Null да се изведе текста 'липсва'
  104. SELECT st.[Name] AS 'Име на ученик',
  105.        st.[Class] AS 'Клас',
  106.        t.[Name] AS 'Град',
  107.        sub1.[Name] AS 'I-ви Профилиращ предмет',
  108.        sub2.[Name] AS 'II-ри Профилиращ предмет'
  109. FROM Students st
  110. LEFT JOIN Towns t ON st.TownId = t.Id
  111. LEFT JOIN Subjects sub1 ON st.Subject1 = sub1.Id
  112. LEFT JOIN Subjects sub2 ON st.Subject2 = sub2.Id
Advertisement
Add Comment
Please, Sign In to add comment