建立一个粗略高校数据库笔记

要建立的数据库模式图:
在这里插入图片描述

1.建立一个新的连接。
1)进入MYSQL工作界面,点击“+”号创建新的连接。
2)设置好数据库名字,用户名后点击OK。
hostname:localhost 端口:3306 Username:root
在这里插入图片描述
2.建立新的数据库
在schemas窗口的空白处点击鼠标右键,建立一个新的数据库,命名为StudentDB。
在这里插入图片描述
将数据库编码修改为utf8,以支持中文数据
在这里插入图片描述
3.开始构建数据库
1)create table department(
dept_name varchar(20),
building char(20) not null,
budget INTEGER,
PRIMARY KEY (dept_name)
);//建立系别表

2)INSERT INTO department VALUES
(‘数字媒体系’, ‘N6104’, ‘10000’),
(‘计算机科学系’, ‘WA102’, ‘8000’),
(‘软件工程系’, ‘WA101’, ‘9000’),
(‘物联网系’, ‘BY501’, ‘800’),
(‘电子工程系’, ‘BY502’, ‘9000’),
(‘通信工程系’, ‘BY503’, ‘8500’);//向系别表中插入系别信息

3)create table instructor(
i_id char(5),
tname VARCHAR(20) not null,
dept_name varchar(20) not null,
salary NUMERIC(8,2),
PRIMARY KEY (i_id),
FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);//建立教师表,以教师ID为主键,department表中的dept_name为外码

4)insert into instructor VALUES
(‘10001’,‘蔡彪’,‘数字媒体系’,103000),
(‘10002’,‘林杰’,‘软件工程系’,73500),
(‘10003’,‘李红军’,‘数字媒体系’,73000),
(‘10004’,‘何建军’,‘计算机科学系’,113500),
(‘10005’,‘吴媛媛’,‘电子工程系’,74000),
(‘10006’,‘王淼’,‘计算机科学系’,65000),
(‘10007’,‘桑强’,‘通信工程系’,75000),
(‘10008’,‘胡艳梅’,‘软件工程系’,72000);//往教师表instructor中加入教师信息

5)create table student(
s_id char(12),
sname varchar(30) not null,
dept_name varchar(20),
tot_cred NUMERIC(4,1),
primary key (s_id),
FOREIGN key (dept_name) references department(dept_name)
);//创建学生信息表Student,以学生ID为主键,department表中的dept_name为外码

6)insert into student VALUES
(‘201813161201’,‘王雪’,‘软件工程系’,70.5),
(‘201813161202’,‘叶雅婷’,‘软件工程系’,73),
(‘201813161203’,‘陈雪颖’,‘软件工程系’,70.5),
(‘201813161204’,‘窦筱芸’,‘数字媒体系’,76.5),
(‘201813161205’,‘闫佳佳’,‘数字媒体系’,78.5),
(‘201813161206’,‘张婷婷’,‘物联网系’,64.5),
(‘201813161207’,‘张航’,‘软件工程系’,78),
(‘201813161208’,‘孟海洋’,‘物联网系’,72),
(‘201813161209’,‘何彦铜’,‘物联网系’,71),
(‘201813161210’,‘邓龙’,‘软件工程系’,72),
(‘201813161211’,‘李铖浩’,‘数字媒体系’,73),
(‘201813161212’,‘岳靖川’,‘软件工程系’,75),
(‘201813161213’,‘孙嘉’,‘计算机科学系’,78.5),
(‘201813161214’,‘高金祥’,‘软件工程系’,74),
(‘201813161215’,‘何安康’,‘计算机科学系’,71),
(‘201813161216’,‘尹川’,‘物联网系’,72),
(‘201813161217’,‘伍斌’,‘数字媒体系’,74),
(‘201813161218’,‘钟浩威’,‘软件工程系’,73),
(‘201813161219’,‘张恒铭’,‘软件工程系’,73),
(‘201813161220’,‘刘魏溢’,‘软件工程系’,75),
(‘201813161221’,‘文伟权’,‘计算机科学系’,72),
(‘201813161222’,‘刘达浪’,‘计算机科学系’,73.5),
(‘201813161223’,‘雍登涛’,‘数字媒体系’,77.5),
(‘201813161224’,‘陈许强’,‘数字媒体系’,75.5),
(‘201813161225’,‘吴卓’,‘软件工程系’,75),
(‘201813161226’,‘万树彬’,‘计算机科学系’,74),
(‘201813161227’,‘涂斯航’,‘数字媒体系’,76),
(‘201813161228’,‘伍欣彦’,‘数字媒体系’,76.5),
(‘201813161229’,‘秦粤’,‘软件工程系’,73),
(‘201813161230’,‘李继鹏’,‘计算机科学系’,74);//往表student中添加学生信息

7)create table advisor(
s_id char(12),
i_id char(5),
primary key (s_id,i_id),
FOREIGN key (s_id) references student(s_id),
FOREIGN key (i_id) references instructor(i_id)
);//创建导师表,表示学生对应导师的关系。存在一个学生对应多个导师以及一个导师对应多个学生的关系,所以将学生ID与教师ID一同设置为主键。

8)insert into advisor VALUES
(‘201813161201’,‘10001’),
(‘201813161202’,‘10002’),
(‘201813161203’,‘10003’),
(‘201813161204’,‘10004’),
(‘201813161205’,‘10005’),
(‘201813161206’,‘10006’),
(‘201813161207’,‘10007’),
(‘201813161208’,‘10008’),
(‘201813161209’,‘10008’),
(‘201813161210’,‘10007’),
(‘201813161211’,‘10006’),
(‘201813161212’,‘10005’),
(‘201813161213’,‘10004’),
(‘201813161214’,‘10003’),
(‘201813161215’,‘10002’),
(‘201813161216’,‘10001’),
(‘201813161217’,‘10001’),
(‘201813161218’,‘10002’),
(‘201813161219’,‘10003’),
(‘201813161220’,‘10004’),
(‘201813161221’,‘10005’),
(‘201813161222’,‘10006’),
(‘201813161223’,‘10007’),
(‘201813161224’,‘10008’),
(‘201813161225’,‘10007’),
(‘201813161226’,‘10006’),
(‘201813161227’,‘10005’),
(‘201813161228’,‘10004’),
(‘201813161229’,‘10003’),
(‘201813161230’,‘10002’);//添加导师关系信息到advisor表中

9)CREATE table course(
course_id varchar(7),
title varchar(30) not null,
dept_name varchar(20) not null,
credits NUMERIC(3,1) not null,
PRIMARY KEY (course_id),
FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);//创建课程表,以课程ID为主键

10)insert into course VALUES
(‘CS_1001’,‘高等数学’,‘软件工程系’,8),
(‘CS_1002’,‘离散数学’,‘数字媒体系’,4),
(‘CS_1003’,‘线性代数’,‘计算机科学系’,3),
(‘CS_1004’,‘计算机导论’,‘计算机科学系’,2),
(‘CS_1005’,‘面向程序设计’,‘软件工程系’,5),
(‘CS_1006’,‘操作系统原理’,‘数字媒体系’,3.5),
(‘CS_1007’,‘计算机视觉’,‘软件工程系’,2.5),
(‘CS_1008’,‘数据库系统原理’,‘数字媒体系’,2.5),
(‘CS_1009’,‘计算机网络’,‘软件工程系’,3),
(‘CS_1010’,‘数据结构’,‘计算机科学系’,5),
(‘CS_1011’,‘计算机图形学’,‘数字媒体系’,3);//插入课程信息到course表

11)create table prereq(
course_id varchar(7),
prereq_id varchar(7),
primary key (course_id,prereq_id),
foreign key (course_id) references course(course_id),
foreign key (prereq_id) references course(course_id)
);//创建先修课程表,先修课程ID以及课程ID都要在course表中存在

12)添加信息

13)create table time_slot(
time_slot_id varchar(4),
day smallint not null, – 周一到周七分别对应 1,2…7
start_time time not null,
end_time time,
primary key (time_slot_id)
);//创建时间表并添加信息

14)create table classroom(
building varchar(20),
room_no varchar(10),
capacity integer,
primary key (building,room_no)
);//创建教师表并添加信息

15)create table section(
course_id varchar(7),
sec_id smallint, – 1 表示上半学期,2 表示下半学期
semester varchar(6), – spring, summer, fall
year numeric(4,0),
building varchar(20) not null,
room_no varchar(10) not null,
time_slot_id varchar(4) not null,
primary key (course_id,sec_id, semester,year),
foreign key (course_id) references course(course_id),
foreign key (building,room_no) references classroom(building,room_no),
foreign key (time_slot_id) references time_slot(time_slot_id)
);//创建开设课程表并添加信息

16)create table teaches(
i_id char(12),
course_id varchar(7),
sec_id smallint,
semester varchar(6),
year numeric(4,0),
primary key (i_id,course_id,sec_id,semester, year),
foreign key (i_id) references instructor(i_id),
foreign key (course_id,sec_id,semester,year) REFERENCES
section(course_id,sec_id,semester,year)
);//创建教师开课表并添加信息

17)create table takes(
s_id char(12),
course_id varchar(7),
sec_id smallint,
semester varchar(6),
year numeric(4,0),
grade float(1),
primary key (s_id,course_id,sec_id,semester, year),
foreign key (s_id) references student(s_id),
foreign key (course_id,sec_id,semester,year) REFERENCES
section(course_id,sec_id,semester,year)
);//学生选课表

创建完成。
在这里插入图片描述

发布了2 篇原创文章 · 获赞 0 · 访问量 35

猜你喜欢

转载自blog.csdn.net/RoseM_ary/article/details/105296541