1、 创建院系表department,包含院系编号dno,院系名dname,其中dno为主键,且院系名不能为空。
create database mydb;
create table department(
dno tinyint,
dname varchar(20) not null,
primary key(dno)
);
2、在院系表中插入两行数据
dno | dname |
---|---|
1 | 计算机 |
2 | 外语 |
insert into department
values(1,'计算机');
insert into department
values(2,'外语');
3、创建教师表teacher,包含教师编号tno 主键,教师姓名tname 非空,教工身份证号 tid 唯一,教师性别gender,教工年龄 age,所属院系编号 deptid。
create table teacher(
tno smallint primary key,
tname varchar(20) not null,
tid int unique,
gender varchar(4),
age tinyint,
deptid tinyint,
);
4、在表teacher的列gender上增加检查约束,性别值只能取 男 或女。
alter table teacher
add check(gender='男'or gender='女');
5、在表teacher的列age上增加检查约束,年龄介于 1~120。
alter table teacher
add check(age between 1 and 120);
6、在表teacher的列deptid上增加外键约束,引用department表的dno列
alter table teacher
add foreign key(deptid) references department(dno);
7、在教师表teacher插入如下数据
tno | tname | tid | gender | age | deptid |
---|---|---|---|---|---|
101 | 张潇 | 1111111 | 男 | 30 | 1 |
102 | 李大明 | 222222 | 女 | 40 | 2 |
insert into teacher
values(101,'张潇',1111111,'男',30,1);
insert into teacher
values(102,'李大明',222222,'女',40,2);
8、查询教师表teacher上的约束
exec sp_helpconstraint teacher;
9、删除教师表teacher上的外键约束
alter table teacher
drop constraint FK__teacher__deptid__08162EEB;
10、在教师表teacher上增加外键约束,当院系表修改主键列值时级联更新教师表,当院系表删除数据时将教师表中对应教师的所属院系编号置成null
alter table teacher
add foreign key(deptid) references department(dno)
on delete casecade on updata casecade;
11、将院系表中dno为1的院系编号修改为1001,删除院系表中院系编号为2的院系信息。观察教师表数据变化。