实验1 表结构创建
创建用于大学管理的高校管理数据库,数据库名为GXGL,包含学生的信息,教学单位信 息、专业信息,教职工信息、课程的相关信息以及学生选课信息。数据库GXGL包含下列 六个表:
(1) Students: 学生信息表
(2) Departments:教学院系信息表
(3) major:专业信息表
(4) Courses: 课程信息表
(5) Teacher:教职工人事信息表
(6) SC:选课信息表
其中,表Students结构:学号(id),姓名(name),性别(sex),籍贯(address),生日(birthday),民族(nations),政治面貌(political),所在院系(departments),专业(majors)。
语义说明:
● 每个学生都有唯一的学号
● 每个学生只属于一个院系
● 每个学生只能修一个专业.
● 专业参照major表的专业代码
备注:政治面貌党员、预备党员、群众三种,默认为群众。
其中,表Departments结构:院系全称(Departmentsname),院系简称(Departmentsshortname),学院行政负责人(Departmentsad),学院党政负责人(Departmentspg),联系人(Departmentscontacts)。
语义说明:
● 每个院系都有唯一一的全称、简称
● 每个院系有唯一的行政负责人
● 每个院系有唯一的党政负责人
● 每个院系有唯一的联系人
备注: (1) 院系可以没有简称.
(2)学院行政负责人为正职院长,学院党政负责人为书记,联系人一般为学院办公室主任,三者 都属于高校教职工,都有唯一的工号。
其中,表major结构:专业代码(majordm),专业名称(majorname),所属院系(departments),专业类型(majortype)。
语义说明:
● 每个专业有唯一 的代码
● 所属院系参照 department表
备注:备注:专业类型总共有13个,工学、哲学、经济学、法学、教育学、文学、历史学、理学、管理学、农 学、医学、军事学及艺术学学士。
其中,表Course结构:课程名称(Coursename),授课教师(Courseteacher),承担单位(unit),课程属性(Courseattribute),课程学分(CourseCredits)。
语义说明:
● 每门课程可以由不同教师授课
● 每位教师可以讲授不同课程
● 每位教师所讲授的每门课都有唯一的学分
备注: (1) 承担单位指的是开设该课程的;
(2)每位授课教师都有唯一的工号.
其中,表Teacher结构:教师工号(Teacherid),教师姓名(Teachername),岗位类型(work),职称(workname),所在院系(atDepartments),联系电话(num),参加工作年份(year)。
语义说明 :
● 每位教师有唯 一的工号
备注: (1) 岗位类型有专业技术岗位、管理岗位和工勤技能岗位三种类别,职称有初级、中级、副高级、 高级四种:
(2)一般学校行政管理人员也属于教职工,但是所在院系一项可以不填。
其中,表SC结构:学号(SCid),课程名称(Coursename),授课教师(Teachername),学生成绩(scgrades)。
语义说明:
● 每个学生所选 的某位老师的 课程都有唯一 的成绩
实验步骤:
1.打开MySQL客户端,输入用户名和密码登录
2. 创建数据库gxgl
3.选定要使用的数据库: use gxgl;
5.在gxgl数据库中依次创建表
代码如下:
表1:
create table Students
(id char(6) not null primary key,
name char(10) not null,
sex enum('男','女') not null,
address varchar(20) not null,
birthday date not null,
nations varchar(6) not null,
political enum('群众','党员','预备党员') default '群众',
departments char(15) not null,
marjors char(15) not null,
foreign key (marjors) references major(majordm));
表2:
create table Departments
(Departmentsname varchar(10)not null,
Departmentsshortname char(8),
Departmentsad char(10) not null ,
Departmentspg char(10) not null ,
Departmentscontacts char(10)not null ,
primary key(Departmentsname,Departmentsad,Departmentspg,Departmentscontacts) ,
foreign key (Departmentscontacts) references Teacher(Teacherid));
表3:
create table major
(majordm char(15) not null primary key,
majorname char (15) not null ,
departments char(15) not null,
majortype enum('工学','哲学','经济学','法学','教育学','文学','历史学','理学','管理学','农学','医学','军事学','艺术学学士'),
foreign key (departments) references Departments(Departmentsname));
表4:
create table Course
( Coursename char(15) not null,
Courseteacher char(15) not null,
unit varchar(10) not null,
Courseattribute char (10)not null,
CourseCredits char(15) not null primary key ,
foreign key (CourseCredits ) references Teacher(Teacherid));
表5:
create table Teacher
(Teacherid char(15) not null primary key,
Teachername char(15)not null,
work enum('专业技术岗位','管理岗位','工勤技能岗位') ,
workname enum('初级','中级','副高级','高级'),
atDepartments varchar(10) ,
num char(11) not null,
year char(10));
表6:
create table SC
(SCid char(10) not null ,
Coursename char(15) not null,
Teachername char(15)not null,
scgrades char(3) not null,
unique key(SCid,scgrades));