实验九数据库的完整性设计
实验九 数据库的完整性设计
实验学时:1 学时
实验类型:设计
实验要求:必做
一、实验目的
熟练掌握使用Navicat 和Transact-SQL 语言两种方法创建、修改和删除表。掌握管理表
的有关系统存储过程。
二、实验内容
1、利用Navicat 创建满足以下要求的数据库:①数据库存在于连接MySQL 中;②数据
库名称为xsgl ; ③字符集选择utf8 -- UTF-8 Unicode;排序规则选择utf8_general_ci 。
2、在数据库xsgl 中,利用Navicat 和SQL 语句创建以下表格:
1)表格名为xs (学生基本情况表),表格中各个属性的定义如下:
列名 含义 数据类型 长度 能否取空值 备注
xh 学号 int no
xm 姓名 char 8 yes
xb 性别 char 2 yes
nl 年龄 tinyint yes
zy 专业 char 16 yes
jtzz 家庭住址 char 50 yes
2 )表格名为kc (课程情况表),表格中各个属性的定义如下:
列名 含义 数据类型 长度 能否取空值 备注
xh 学号 int no
kch 课程号 Int no
kcm 课程名 char 20 yes
xss 学时数 int yes
xf 学分 int yes
fs 分数 Int yes
1、在xs 表中定义xh 为主键。
2、在kc 表中定义xh 和kch 联合构成主键。
3、定义kc 表中的kcm 列满足唯一性约束。
4、定义kc 表中的fs 列默认值为0 。
5、定义xs 表中的xb 列的CHECK 约束“男”或“女”。
6、在xs 表与kc 表之间定义外键xh 。
参考语句如下:
use xsgl;
create table xs
(
xh int not null,
xm char(8) null,
xb char(2) null check(xb in('男','女')),
nl tinyint null,
zy char(16) null,
jtzz char(50) null,
primary key(xh)
)engine=innodb default charset=utf8 auto_increment=1;
create table kc
(
xh int not null,
kch int not null,
kcm char(20) null unique,
xss int null,
xf int null,
fs int null default 0,
primary key(xh,kch),
foreign key(xh) references xs(xh) on delete cascade on update
cascade
)engine=innodb default charset=utf8 auto_increment=1;
7、以下将创建一个