DimovIvan

MS SQL - Table Relations

Jun 16th, 2022
1,766
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.27 KB | None | 0 0
  1. --Exercises: Table Relations
  2.  
  3. --01. One-To-One Relationship
  4.  
  5. CREATE TABLE Passports (
  6.     PassportID INT PRIMARY KEY IDENTITY,
  7.     PassportNumber VARCHAR(10) NOT NULL)
  8.  
  9. CREATE TABLE Persons (
  10.     PersonID INT PRIMARY KEY IDENTITY,
  11.     FirstName NVARCHAR(20) NOT NULL,
  12.     Salary DECIMAL(6,2) NOT NULL,
  13.     PassportID INT FOREIGN KEY REFERENCES Passports(PassportID) UNIQUE NOT NULL)
  14.  
  15. --02. One-To-Many Relationship
  16.  
  17. CREATE TABLE Manufacturers(
  18. ManufacturerID INT PRIMARY KEY IDENTITY,
  19. [Name] VARCHAR(6) UNIQUE NOT NULL,
  20. EstablishedOn DATE NOT NULL)
  21.  
  22. CREATE TABLE Models(
  23. ModelID INT PRIMARY KEY IDENTITY(101, 1),
  24. [Name] VARCHAR(8) UNIQUE NOT NULL,
  25. ManufacturerID INT FOREIGN KEY REFERENCES Manufacturers(ManufacturerID) NOT NULL)
  26.  
  27. --03. Many-To-Many Relationship
  28.  
  29. CREATE TABLE Students(
  30. StudentID INT PRIMARY KEY IDENTITY,
  31. [Name] VARCHAR(10) NOT NULL,)
  32.  
  33. CREATE TABLE Exams(
  34. ExamID INT PRIMARY KEY IDENTITY(101, 1),
  35. [Name] VARCHAR(15) NOT NULL,)
  36.  
  37. CREATE TABLE StudentsExams(
  38. StudentID INT FOREIGN KEY REFERENCES Students(StudentID) NOT NULL,
  39. ExamID INT FOREIGN KEY REFERENCES Exams(ExamID) NOT NULL,
  40. PRIMARY KEY(StudentID, ExamID))
  41.  
  42. --04. Self-Referencing
  43.  
  44. CREATE TABLE Teachers(
  45. TeacherID INT PRIMARY KEY IDENTITY(101, 1),
  46. [Name] VARCHAR(15) NOT NULL,
  47. ManagerID INT FOREIGN KEY REFERENCES Teachers(TeacherID))
  48.  
  49. --05. Online Store Database
  50.  
  51. CREATE DATABASE OnlineStore
  52.  
  53. GO
  54.  
  55. USE OnlineStore
  56.  
  57. GO
  58.  
  59. CREATE TABLE Cities(
  60. CityID INT PRIMARY KEY IDENTITY,
  61. [Name] VARCHAR(50) NOT NULL)
  62.  
  63. CREATE TABLE Customers(
  64. CustomerID INT PRIMARY KEY IDENTITY,
  65. [Name] VARCHAR(50) NOT NULL,
  66. Birthday DATE NOT NULL,
  67. CityID INT FOREIGN KEY REFERENCES Cities(CityID) NOT NULL)
  68.  
  69. CREATE TABLE Orders(
  70. OrderID INT PRIMARY KEY IDENTITY,
  71. CustomerID INT FOREIGN KEY REFERENCES Customers(CustomerID) NOT NULL)
  72.  
  73. CREATE TABLE ItemTypes(
  74. ItemTypeID INT PRIMARY KEY IDENTITY,
  75. [Name] VARCHAR(50) NOT NULL)
  76.  
  77. CREATE TABLE Items(
  78. ItemID INT PRIMARY KEY IDENTITY,
  79. [Name] VARCHAR(50) NOT NULL,
  80. ItemTypeID INT FOREIGN KEY REFERENCES ItemTypes(ItemTypeID) NOT NULL)
  81.  
  82. CREATE TABLE OrderItems(
  83. OrderID INT FOREIGN KEY REFERENCES Orders(OrderID) NOT NULL,
  84. ItemID INT FOREIGN KEY REFERENCES Items(ItemID) NOT NULL,
  85. PRIMARY KEY(OrderID, ItemID))
  86.  
  87. --06. University Database
  88.  
  89. CREATE DATABASE University
  90. GO
  91. USE University
  92. GO
  93.  
  94. CREATE TABLE Majors(
  95. MajorID INT PRIMARY KEY IDENTITY,
  96. [Name] NVARCHAR(50) UNIQUE NOT NULL)
  97.  
  98. CREATE TABLE Students(
  99. StudentID INT PRIMARY KEY IDENTITY,
  100. StudentNumber INT UNIQUE NOT NULL,
  101. StudentName NVARCHAR(50) NOT NULL,
  102. MajorID INT FOREIGN KEY REFERENCES Majors(MajorID) NOT NULL)
  103.  
  104. CREATE TABLE Payments(
  105. PaymentID INT PRIMARY KEY IDENTITY,
  106. PaymentDate DATETIME2 NOT NULL,
  107. PaymentAmount MONEY NOT NULL,
  108. StudentID INT FOREIGN KEY REFERENCES Students(StudentID) NOT NULL)
  109.  
  110. CREATE TABLE Subjects(
  111. SubjectID INT PRIMARY KEY IDENTITY,
  112. SubjectName NVARCHAR(70) NOT NULL)
  113.  
  114. CREATE TABLE Agenda(
  115. StudentID INT FOREIGN KEY REFERENCES Students(StudentID) NOT NULL,
  116. SubjectID INT FOREIGN KEY REFERENCES Subjects(SubjectID) NOT NULL,
  117. PRIMARY KEY(StudentID, SubjectID))
  118.  
  119. --09. *Peaks in Rila
  120.  
  121. USE Geography
  122.  
  123. SELECT
  124.     m.MountainRange
  125.     ,p.PeakName
  126.     ,p.Elevation
  127. FROM Mountains AS m
  128. JOIN Peaks AS p ON p.MountainId = m.Id
  129. AND m.MountainRange = 'Rila'
  130. ORDER BY p.Elevation DESC
Advertisement
Add Comment
Please, Sign In to add comment