实验三:表数据操作sql文件
sql文件已上传到资源管理中心,有需自取
/删除三个表/
drop table stu_grade,stu_info,course_info;
go
use student;
go
/*
创建stu_info表
*/
create table stu_info
(
stu_id char(10) not null constraint stu_id primary key,
name nvarchar(20) not null,
birthday date,
sex nchar(1) default ‘男’,
address nvarchar(20),
mark smallint,
major nvarchar(20),
sdept nvarchar(20)
);
go
/*
创建course_info表
*/
create table course_info
(
course_id char(3) not null constraint course_id primary key,
course_name nvarchar(20) not null,
course_type nchar(2) default ‘考试’,
course_mark tinyint,
course_time int
);
go
/*
创建stu_grade表
*/
create table stu_grade
(
stu_id char(10) not null constraint fk_stu_id foreign key references stu_info(stu_id),
course_id char(3) not null constraint fk_course_id foreign key references course_info(course_id),
grade decimal(5,2)
);
go
/*
将stu_grade表中的stu_id与course_id合在一起作为主键
*/
alter table stu_grade
add constraint pk_stu_course primary key(stu_id,course_id);
go
/*
增加备注字段,
字段名memo,
字段类型nvarchar,
字段长度200;
*/
alter table stu_grade
add memo nvarchar(200);
go
/*
在表course_info中,
对于字段course_name设置UNIQUE约束;
*/
alter table course_info
add unique(course_name);
go
/*
在表stu_grade中,
对于字段grade设置CHECK约束,
其取值在0到100之间;
*/
alter table stu_grade
add check(grade between 0 and 100);
go
/*
在表stu_grade中,
对于字段stu_id设置FOREIGN KEY约束,
其取值参照表stu_info中stu_id字段的取值;
*/
alter table stu_grade
add foreign key(stu_id) references stu_info(stu_id);
go
/*
在表course_info中,
增加先行课字段,
字段名pre_course_id,
其取值参照该表中course_id字段的取值;
步骤:
1.先创建pre_course_id列;
2.再设置外码约束
*/
–创建pre_course_id
alter table course_info
add pre_course_id char(3);
go
–设置外码约束
alter table course_info
add foreign key (pre_course_id) references course_info(course_id);
go
/*
利用INSERT INTO命令
向 学生信息表stu_info、
课程信息表course_info、
学生成绩表stu_grade中添加数据
*/
–学生信息表
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
VALUES(‘2007070101’,‘张元’,‘男’,‘1985-10-09’,‘河南郑州’,580,‘计算机科学与技术’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
VALUES(‘2007070102’,‘张红’,‘女’,‘1985-01-14’,‘河南开封’,565,‘计算机科学与技术’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007070103’,‘王明’,‘男’,‘1986-07-08’,‘河南洛阳’,570,‘计算机科学与技术’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007070104’,‘李伟’,‘男’,‘1986-03-11’,‘河南郑州’,564,‘计算机科学与技术’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007070201’,‘郑澜’,NULL,‘1985-12-01’,‘河南平顶山’,567,‘电子商务’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007070202’,‘赵恒’,‘男’,‘1986-02-03’,‘河南周口’,566,‘电子商务’,‘信息学院’)
INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007070203’,‘张兰’,‘女’,‘1986-04-06’,‘河南许昌’,571,‘电子商务’,‘信息学院’)
INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007080101’,‘李伟’,‘男’,‘1985-09-12’,‘河南郑州’,578,‘会计学’,‘会计学院’)
INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007080102’,‘钱丽’,‘女’,‘1985-11-23’,‘河南安阳’,573,‘会计学’,‘会计学院’)
INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
VALUES(‘2007080201’,‘孙楠’,‘男’,‘1986-11-19’,‘河南南阳’,577,‘财务管理