1.创建student(学生信息表)。在数据库XSCJ中创建一个表student,它由学号sno、姓名sname、性别ssex、年龄sage和系部sdept五个属性组成,其中学号属性不能为空。
use XSCJ
create table student --在数据库XSCJ中创建表student
(
sno char(15) primary key, --学生学号sno设为主键
sname char(8),
ssex char(2),
sage int, --学生年龄,整数类型
sdept char(15)
)
2.创建course(课程信息表)
use XSCJ
create table course
(
cno char(5) primary key, --课程编号cno设为主键
cname char(20) not NULL, --课程名称,长度为20的字符类型,不允许为空
credit int not NULL --学分,整数类型,不允许为空
)
3.创建sc(学生选课信息表)
use XSCJ
create table sc
(
sno char(15),
cno char(5),
grade int,
foreign key(sno) references student(sno),
foreign key(cno) references course(cno),
)
4.为表student增加“入学时间”列,其数据类型为日期型。
alter table student
add enrollment_time datetime --添加入学时间列enrollment_time
5.将表student的sname列长度改为8。
alter table student
alter column sname char(8)
6.将表student的sage列改为smallint型。
alter table student
alter column sage smallint --整数数据类型smallint
7.删除student表。
--首先删除从表sc,再删除student主表
use XSCJ
drop table sc
--删除student表
use XSCJ
drop table student
8.为XSCJ数据库中的course添加课程号为主键约束名称为PK_cno。
首先删除原有的没有取名的主键约束,再重新给cno创建主键约束名为PK_cno :
elect name from sys.key_constraints where type ='PK' and OBJECT_NAME(parent_object_id)='course'
alter table course
drop constraint PK__course__D83617556021F7C0
alter table course
add constraint PK_cno primary key(cno)
9.为XSCJ数据库中的选课表sc中的课程号cno建立外键约束。
alter table sc
add constraint FK_CNO foreign key(cno) references course(cno)
10.修改student表的sname列为唯一约束。
--创建唯一约束
alter table student
add constraint UN_sname unique(sname)
11.在sc表中,限制grade列的值只能在0~100之间。
alter table sc
add constraint ch_g check(grade>=0 and grade<=100)
小结:
创建sc(学生选课信息表)时出现错误:
原因:创建student表和course表时关闭了程序,切断了联系,再次打开引用新建查询创建sc时才出现图片中的错误“引用了无效的表student和course”。
解决:删除已有的student表和course表,重新创建student表、course表和sc表在同一个“新建查询”中执行,亲测有效。