Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.19 KB | None | 0 0
  1. CREATE TABLE StudGroupNew (
  2.     name VARCHAR(10) PRIMARY KEY,
  3.     YEAR SMALLINT NOT NULL,
  4.     kafedra VARCHAR(10) NOT NULL
  5. );
  6.  
  7. CREATE TABLE StudentNew (
  8.     id BIGINT PRIMARY KEY,
  9.     FIO VARCHAR(50) NOT NULL,
  10.     BirthDate DATE NOT NULL,
  11.     Gender CHAR(1) NOT NULL CHECK (Gender = 'M' OR GENDER = 'F') DEFAULT 'F',
  12.     GroupName VARCHAR(10) NOT NULL REFERENCES StudGroupNew(name),
  13.     Salary INT,
  14.     UNIQUE (GroupName, FIO)
  15. );
  16.  
  17. // -----------------
  18.  
  19. CREATE TABLE StudGroup (
  20.     name VARCHAR(10) PRIMARY KEY,
  21.     YEAR SMALLINT NOT NULL,
  22.     kafedra VARCHAR(10) NOT NULL
  23. );
  24.  
  25. CREATE TABLE Student (
  26.     id BIGINT PRIMARY KEY,
  27.     fio VARCHAR(50) NOT NULL,
  28.     birth_date DATE NOT NULL,
  29.     gender CHAR(1) NOT NULL CHECK (gender = 'M' OR gender = 'F') DEFAULT 'F',
  30.     group_name VARCHAR(10) NOT NULL REFERENCES StudGroup(name),
  31.     salary INT
  32. );
  33.  
  34. CREATE TABLE Lecturer (
  35.     id BIGINT PRIMARY KEY,
  36.     fio VARCHAR(50) NOT NULL,
  37.     EXP INT NOT NULL DEFAULT 0,
  38.     kafedra VARCHAR(10) NOT NULL
  39. );
  40.  
  41. CREATE TABLE Exam (
  42.     id_student BIGINT NOT NULL REFERENCES Student(id),
  43.     subject VARCHAR(15) NOT NULL,
  44.     mark INT,
  45.     exam_date DATE NOT NULL,
  46.     id_lect BIGINT NOT NULL REFERENCES Lecturer(id),
  47.     PRIMARY KEY (id_student, subject)
  48. );
  49.  
  50. // ------------
  51.  
  52. CREATE TABLE LecturerNew (
  53.     id BIGINT PRIMARY KEY,
  54.     fio VARCHAR(50) NOT NULL,
  55.     EXP INT CHECK (EXP <= 80),
  56.     kafedra VARCHAR(10) NOT NULL,
  57.     UNIQUE (fio, kafedra)
  58. );
  59.  
  60. CREATE TABLE ExamNew (
  61.     id_student BIGINT NOT NULL REFERENCES Migunov1.dbo.Student(id),
  62.     subject VARCHAR(50) NOT NULL,
  63.     mark INT CHECK (mark >= 25 AND mark <= 100) DEFAULT 25,
  64.     exam_date DATE DEFAULT GETDATE(),
  65.     id_lecturer BIGINT NOT NULL REFERENCES LecturerNew(id),
  66.     PRIMARY KEY (id_student, subject),
  67.     UNIQUE (id_student, exam_date)
  68. );
  69.  
  70. CREATE TABLE StudGroupNew (
  71.     name VARCHAR(10) PRIMARY KEY,
  72.     YEAR SMALLINT CHECK (YEAR >= 1 AND YEAR <= 6) DEFAULT 1,
  73.     kafedra VARCHAR(10)
  74. );
  75.  
  76. //--------------------
  77. DROP TABLE SubjectLect5;
  78. CREATE TABLE SubjectLect5 (
  79.     id_lect BIGINT NOT NULL REFERENCES Migunov1.dbo.Lecturer(id),
  80.     name_subject VARCHAR(15) NOT NULL,
  81.     PRIMARY KEY (id_lect, name_subject)
  82. );
  83.  
  84. DROP TABLE SubjectLect6;
  85. CREATE TABLE SubjectLect6 (
  86.     id_lect BIGINT NOT NULL,
  87.     name_subject VARCHAR(15) NOT NULL,
  88.     PRIMARY KEY (id_lect, name_subject),
  89.     FOREIGN KEY (id_lect) REFERENCES Migunov1.dbo.Lecturer(id)
  90.         ON DELETE NO ACTION
  91.         ON UPDATE NO ACTION
  92. );
  93.  
  94. DROP TABLE ExamTest;
  95. CREATE TABLE ExamTest (
  96.     id_student BIGINT NOT NULL,
  97.     subject VARCHAR(10) NOT NULL,
  98.     mark INT,
  99.     exam_date DATE,
  100.     PRIMARY KEY (id_student, subject),
  101.     FOREIGN KEY (id_student) REFERENCES Migunov1.dbo.Student(id)
  102.         ON DELETE CASCADE
  103.         ON UPDATE CASCADE
  104. );
  105.  
  106. DROP TABLE StudGroupTest;
  107. CREATE TABLE StudGroupTest (
  108.     name VARCHAR(10) PRIMARY KEY,
  109.     YEAR SMALLINT CHECK (YEAR >= 1 AND YEAR <= 6) DEFAULT 1,
  110.     kafedra VARCHAR(10),
  111.     kurator BIGINT,
  112.     FOREIGN KEY (kurator) REFERENCES Migunov1.dbo.Lecturer(id)
  113.         ON DELETE SET NULL
  114.         ON UPDATE CASCADE
  115. );
  116.  
  117. ALTER TABLE StudGroupTest
  118. ADD starosta BIGINT;
  119. ALTER TABLE StudGroupTest
  120. ADD CONSTRAINT FK_starosta FOREIGN KEY (starosta) REFERENCES Migunov1.dbo.Student ON DELETE SET NULL;
  121.  
  122. ALTER TABLE StudGroupTest
  123. DROP CONSTRAINT FK_starosta;
  124. ALTER TABLE StudGroupTest
  125. DROP COLUMN starosta;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement