使用软件:
SQL Server 2019
SSMS(SQL Server Management Studio) 18.12.1
学生课程库
这里的学号下面是改成了10位长度
1、创建学生课程数据库
2、建学生表
设置学号为主键(右键单击学号选设置主键),设置smalint默认值20,性别的约束可以建表后再设置。(注,上面学号的char长度被修订为10)
3、建表后,右键性别,点击CHECK约束。
点击表达式,输入“性别 IN ('男','女')”,同时会发现这里的约束名是CK_表名,第一个学生表建立即完成,后面就可以点击编辑前200行就可以加数据了。
如果不想用上面的点点点界面操作,那么直接用下面的SQL语句即可。
create table 学生(
学号 CHAR(10) PRIMARY KEY, -- 已包含了 NOT NULL UNQUE,
姓名 VARCHAR(8) NOT NULL,
年龄 SMALLINT DEFAULT 20,
性别 CHAR(2) CHECK(性别 IN ('男', '女')),
所在系 CHAR(20)
);
4、建立课程表
这里用SQL语句的方式,在学生表上右键,新建查询。
create table 课程(
课程号 CHAR(5) PRIMARY KEY, -- 已包含了 NOT NULL UNQUE
课程名 VARCHAR(20) NOT NULL,
先行课 CHAR(5)
);
5、建立选课表
这里仍用SQL语句的方式,在选课表上右键,新建查询。
create table 选课 (
学号 CHAR(10) NOT NULL,
课程号 CHAR(5) NOT NULL,
成绩 SMALLINT CHECK(成绩 BETWEEN 0 AND 100),
CONSTRAINT C1 PRIMARY KEY(学号, 课程号), -- 学号和课程号为主码
CONSTRAINT C2 FOREIGN KEY(学号) REFERENCES 学生(学号), -- 学号为外键(注意这里与学生表的学号数据类型一致)
CONSTRAINT C3 FOREIGN KEY(课程号) REFERENCES 课程(课程号) -- 课程号为外键(注意这里与课程表的课程号数据类型一致)
)
图书读者库
注:MONEY是没有长度的(SQL Server有该数据类型),电话的长度因分配为11。
1、创建图书读者数据库
下面均采用SQL语句,建立查询的方式创建表。
(也可以看到数据库的数据存放位置,D:\new_software\SQLServer\servers\MSSQL15.MSSQLSERVER\MSSQL\DATA\)
2、建立图书表、建立读者表、建立借阅表
-- 创建图书表
create table 图书 (
书号 char(10) primary key, -- 主码(包含not null unque)
类别 varchar(12) not null,
出版社 varchar(30),
作者 varchar(20),
书名 varchar(50) not null,
定价 money
);
-- 创建读者表
create table 读者 (
编号 char(8) primary key, -- 主码(包含not null unque)
姓名 varchar(8) not null,
单位 varchar(30),
性别 char(2) check(性别 IN ('男','女')),
电话 char(11)
);
-- 创建借阅表
create table 借阅 (
书号 char(10),
读者编号 char(8),
借阅日期 datetime not null,
constraint C1 primary key(书号, 读者编号), -- 书号, 读者编号为主码
constraint C2 foreign key(书号) references 图书(书号), -- 书号为外键(注意这里与图书表的书号数据类型一致)
constraint C3 foreign key(读者编号) references 读者(编号) -- 编号为外键(注意这里与读者表的编号数据类型一致)
);