1. 编写6个基本表

设有简单教学管理的6个关系模式如下:

系(系编号,系名称、系主任、联系电话、地址)

专业(专业编号、专业名称、所属系)

教师(教师编号、姓名、所在系、电话、电子信箱)

学生(学号、姓名、性别、出生日期、所学专业)

课程(课程号、课程名、学分、先修课)

学生选课(学号、课程号、成绩)

要求:在数据库EDUC中,创建对应的6个基本表,基本表的名称和属性名称由同学自行确定。

基本表的数据结构及完整性要求:

1. 系 (系编号,系名称、系主任、联系电话、地址)

 系编号:字符型(定长),长度为4,主码

 系名称:字符型(变长),长度20,非空

 系主任:字符型(定长),长度为10

 联系电话:字符型(变长),长度20

 地址:字符型(变长),长度40

2. 专业 (专业编号、专业名称、所属系)

  专业编号:字符型(定长),长度为2,主码

  专业名称:字符型(变长),长度40,非空

  所属系:字符型(定长),长度为4,外码

3. 教师 (教师编号、姓名、所在系、电话、电子信箱)

  教师编号:字符型(定长),长度为10,主码

  姓名:字符型(定长),长度10,非空

  所在系:字符型(定长),长度为4,外码

  电话:字符型(变长),长度20

  电子信箱:字符型(变长),长度30

4. 学生 (学号、姓名、性别、出生日期、所学专业)

  学号:字符型(定长),长度为10,主码

  姓名:字符型(变长),长度20,非空,唯一

  性别:字符型(定长),长度为2,性别只能为‘男‘ 或‘女’

  出生日期:日期型(datetime)

  所学专业:字符型(定长),长度为2,外码  

5. 课程 (课程号、课程名、学分、先修课)

  课程号:字符型(定长),长度为4,主码

  课程名:字符型(变长),长度30

  学分:数值型(长度为2,含1位小数)

  先修课:字符型(定长),长度为4,外码

6. 学生选课 (学号、课程号、成绩)

  学号:字符型(定长),长度为10,外码

  课程号:字符型(定长),长度为4,外码

  成绩:数值型(长度为4,含1位小数),成绩必须在:0~100分之间。

  本表的主码为:(学号,课程号)。
-- 创建系表
create table department(
	dpt_id char(4) primary key,
	dpt_name varchar(20) not null,
	dpt_head char(10),
	dpt_phone varchar(20),
	dpt_address varchar(40)
)

-- 创建专业表
create table major(
	mj_id char(2) primary key,
	mj_name varchar(40) not null,
	mj_dpt char(4) foreign key references department(dpt_id)
)

-- 创建教师表
create table teacher(
	tc_id char(10) primary key,
	tc_name char(10) not null,
	tc_dpt char(4) foreign key references department(dpt_id),
	tc_phone varchar(20),
	tc_email varchar(30)
)

-- 创建学生表
create table student(
	st_id char(10) primary key,
	st_name varchar(20) not null unique,
	st_sex char(2) check(st_sex in('男','女')),
	st_born datetime,
	tc_mj char(2) foreign key references major(mj_id)
)

-- 创建课程表
create table course(
	cs_id char(4) primary key,
	cs_name varchar(30),
	cs_credit numeric(2,1),
	cs_prerequisite char(4) foreign key references course(cs_id)
)

-- 创建学生选课表
create table select_course(
	sc_id char(10) foreign key references student(st_id),
	sc_num char(4) foreign key references course(cs_id),
	sc_grade numeric(4,1) check(sc_grade>0and sc_grade<100)
	primary key(sc_id,sc_num)
)

image-20201116161613129
image-20201116161834836



2. 修改基本表结构,完整性约束条件

用 Alter table 语句修改基本表的结构,以及完整性约束条件

1. 为学生表增加属性:班级,字符型(变长),长度20

-- 为学生表增加属性:班级,字符型(变长),长度20
alter table student add st_class varchar(20)

image-20201116162054593

2. 为课程表添加一条完整性约束条件:课程名不允许为空值

-- 为课程表添加一条完整性约束条件:课程名不允许为空值
alter table course alter column cs_name varchar(30) not null

image-20201116163422221

3. 删除学生表中的班级属性

-- 删除学生表中的班级属性
alter table student drop column st_class

4. 删除学生表中对学生姓名的唯一值限制

-- 删除学生表中对学生姓名的唯一值限制
alter table student drop constraint 约束名	--约束名通过图形化界面查看


3. 用Drop table 语句删除基本表

-- 创建一个新的基本表
create table test(
	id char(10) primary key,
	name varchar(10) not null
)

-- 删除该表。
drop table test
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐