Advertisement
Shishu

sql table

May 24th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.40 KB | None | 0 0
  1. CREATE TABLE classroom
  2.     (building       VARCHAR(15),
  3.      room_number        VARCHAR(7),
  4.      capacity       NUMBER(4,0),
  5.      PRIMARY KEY (building, room_number)
  6.     );
  7.  
  8. CREATE TABLE department
  9.     (dept_name      VARCHAR(20),
  10.      building       VARCHAR(15),
  11.      budget             NUMBER(12,2) CHECK (budget > 0),
  12.      PRIMARY KEY (dept_name)
  13.     );
  14.  
  15. CREATE TABLE course
  16.     (course_id      VARCHAR(8),
  17.      title          VARCHAR(50),
  18.      dept_name      VARCHAR(20),
  19.      credits        NUMBER(2,0) CHECK (credits > 0),
  20.      PRIMARY KEY (course_id),
  21.      FOREIGN KEY (dept_name) REFERENCES department
  22.         ON DELETE SET NULL
  23.     );
  24.  
  25. CREATE TABLE instructor
  26.     (ID         VARCHAR(5),
  27.      name           VARCHAR(20) NOT NULL,
  28.      dept_name      VARCHAR(20),
  29.      salary         NUMBER(8,2) CHECK (salary > 29000),
  30.      PRIMARY KEY (ID),
  31.      FOREIGN KEY (dept_name) REFERENCES department
  32.         ON DELETE SET NULL
  33.     );
  34.  
  35. CREATE TABLE SECTION
  36.     (course_id      VARCHAR(8),
  37.          sec_id         VARCHAR(8),
  38.      semester       VARCHAR(6)
  39.         CHECK (semester IN ('Fall', 'Winter', 'Spring', 'Summer')),
  40.      YEAR           NUMBER(4,0) CHECK (YEAR > 1701 AND YEAR < 2100),
  41.      building       VARCHAR(15),
  42.      room_number        VARCHAR(7),
  43.      time_slot_id       VARCHAR(4),
  44.      PRIMARY KEY (course_id, sec_id, semester, YEAR),
  45.      FOREIGN KEY (course_id) REFERENCES course
  46.         ON DELETE cascade,
  47.      FOREIGN KEY (building, room_number) REFERENCES classroom
  48.         ON DELETE SET NULL
  49.     );
  50.  
  51. CREATE TABLE teaches
  52.     (ID         varchar2(5),
  53.      course_id      varchar2(8),
  54.      sec_id         varchar2(8),
  55.      semester       varchar2(6),
  56.      YEAR           NUMBER(4,0),
  57.      CONSTRAINT "teaches_PK" PRIMARY KEY (ID, course_id, sec_id, semester, YEAR),
  58.      CONSTRAINT "teaches_FK1" FOREIGN KEY (course_id,sec_id, semester, YEAR) REFERENCES SECTION
  59.         ON DELETE cascade,
  60.      CONSTRAINT "teaches_FK2" FOREIGN KEY (ID) REFERENCES instructor (ID)
  61.         ON DELETE cascade
  62.     );
  63.  
  64. CREATE TABLE student
  65.     (ID         varchar2(5),
  66.      name           varchar2(20) NOT NULL,
  67.      dept_name      varchar2(20),
  68.      tot_cred       NUMBER(3,0) CHECK (tot_cred >= 0),
  69.      CONSTRAINT "student_PK" PRIMARY KEY (ID),
  70.      CONSTRAINT "student_FK" FOREIGN KEY (dept_name) REFERENCES department
  71.         ON DELETE SET NULL
  72.     );
  73.  
  74. CREATE TABLE takes
  75.     (ID         varchar2(5),
  76.      course_id      varchar2(8),
  77.      sec_id         varchar2(8),
  78.      semester       varchar2(6),
  79.      YEAR           NUMBER(4,0),
  80.      grade              varchar2(2),
  81.      CONSTRAINT "takes_PK" PRIMARY KEY (ID, course_id, sec_id, semester, YEAR),
  82.      CONSTRAINT "takes_FK1" FOREIGN KEY (course_id,sec_id, semester, YEAR) REFERENCES SECTION
  83.         ON DELETE cascade,
  84.      CONSTRAINT "takes_FK2" FOREIGN KEY (ID) REFERENCES student
  85.         ON DELETE cascade
  86.     );
  87.  
  88. CREATE TABLE advisor
  89.     (s_ID           varchar2(5),
  90.      i_ID           varchar2(5),
  91.      CONSTRAINT "advisor_PK" PRIMARY KEY (s_ID),
  92.      CONSTRAINT "advisor_FK1" FOREIGN KEY (i_ID) REFERENCES instructor (ID)
  93.         ON DELETE SET NULL,
  94.      CONSTRAINT "advisor_FK2" FOREIGN KEY (s_ID) REFERENCES student (ID)
  95.         ON DELETE cascade
  96.     );
  97.  
  98. CREATE TABLE time_slot
  99.     (time_slot_id       varchar2(4),
  100.      DAY            varchar2(1),
  101.      start_hr       NUMBER(2) CHECK (start_hr >= 0 AND start_hr < 24),
  102.      start_min      NUMBER(2) CHECK (start_min >= 0 AND start_min < 60),
  103.      end_hr         NUMBER(2) CHECK (end_hr >= 0 AND end_hr < 24),
  104.      end_min        NUMBER(2) CHECK (end_min >= 0 AND end_min < 60),
  105.      CONSTRAINT "time_slot_PK" PRIMARY KEY (time_slot_id, DAY, start_hr, start_min)
  106.     );
  107.  
  108. CREATE TABLE prereq
  109.     (course_id      varchar2(8),
  110.      prereq_id      varchar2(8),
  111.      PRIMARY KEY (course_id, prereq_id),
  112.      FOREIGN KEY (course_id) REFERENCES course
  113.         ON DELETE cascade,
  114.      FOREIGN KEY (prereq_id) REFERENCES course
  115.     );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement