Created
October 19, 2016 18:48
-
-
Save quickgrid/a2a704822fd731dd2fd04815facff001 to your computer and use it in GitHub Desktop.
mysql tables for a database
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create table classroom | |
(building varchar(15), | |
room_number varchar(7), | |
capacity numeric(4,0), | |
primary key (building, room_number) | |
); | |
create table department | |
(dept_name varchar(20), | |
building varchar(15), | |
budget numeric(12,2), | |
primary key (dept_name), | |
constraint check (budget > 0) | |
); | |
create table course | |
(course_id varchar(8), | |
title varchar(50), | |
dept_name varchar(20), | |
credits numeric(2,0), | |
primary key (course_id), | |
foreign key (dept_name) references department(dept_name) | |
on delete set null, | |
constraint check (credits > 0) | |
); | |
create table instructor | |
(ID varchar(5), | |
name varchar(20) not null, | |
dept_name varchar(20), | |
salary numeric(8,2), | |
primary key (ID), | |
foreign key (dept_name) references department(dept_name) | |
on delete set null, | |
constraint check (salary > 29000) | |
); | |
create table section | |
(course_id varchar(8), | |
sec_id varchar(8), | |
semester varchar(6), | |
constraint check (semester in ('Fall', 'Winter', 'Spring', 'Summer')), | |
year numeric(4,0), | |
constraint check (year > 1701 and year < 2100), | |
building varchar(15), | |
room_number varchar(7), | |
time_slot_id varchar(4), | |
primary key (course_id, sec_id, semester, year), | |
foreign key (course_id) references course(course_id) | |
on delete cascade, | |
foreign key (building, room_number) references classroom(building, room_number) | |
on delete set null | |
); | |
create table teaches | |
(ID varchar(5), | |
course_id varchar(8), | |
sec_id varchar(8), | |
semester varchar(6), | |
year numeric(4,0), | |
primary key (ID, course_id, sec_id, semester, year), | |
foreign key (course_id,sec_id, semester, year) references section(course_id,sec_id, semester, year) | |
on delete cascade, | |
foreign key (ID) references instructor(ID) | |
on delete cascade | |
); | |
create table student | |
(ID varchar(5), | |
name varchar(20) not null, | |
dept_name varchar(20), | |
tot_cred numeric(3,0), | |
constraint check (tot_cred >= 0), | |
primary key (ID), | |
foreign key (dept_name) references department(dept_name) | |
on delete set null | |
); | |
create table takes | |
(ID varchar(5), | |
course_id varchar(8), | |
sec_id varchar(8), | |
semester varchar(6), | |
year numeric(4,0), | |
grade varchar(2), | |
primary key (ID, course_id, sec_id, semester, year), | |
foreign key (course_id,sec_id, semester, year) references section(course_id,sec_id, semester, year) | |
on delete cascade, | |
foreign key (ID) references student(ID) | |
on delete cascade | |
); | |
create table advisor | |
(s_ID varchar(5), | |
i_ID varchar(5), | |
primary key (s_ID), | |
foreign key (i_ID) references instructor (ID) | |
on delete set null, | |
foreign key (s_ID) references student (ID) | |
on delete cascade | |
); | |
create table time_slot | |
(time_slot_id varchar(4), | |
day varchar(1), | |
start_hr numeric(2), | |
constraint check (start_hr >= 0 and start_hr < 24), | |
start_min numeric(2), | |
constraint check (start_min >= 0 and start_min < 60), | |
end_hr numeric(2), | |
constraint check (end_hr >= 0 and end_hr < 24), | |
end_min numeric(2), | |
constraint check (end_min >= 0 and end_min < 60), | |
primary key (time_slot_id, day, start_hr, start_min) | |
); | |
create table prereq | |
(course_id varchar(8), | |
prereq_id varchar(8), | |
primary key (course_id, prereq_id), | |
foreign key (course_id) references course(course_id) | |
on delete cascade, | |
foreign key (prereq_id) references course(course_id) | |
); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment