实验三 完整性约束

更新时间:2024-05-21 23:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验3 完整性约束

一、

1. 2. 3. 4.

实验目的

理解主键、唯一键、外键、检查、默认、标识列的含义。

掌握用企业管理器创建UNIQUE、FOREIGN KEY、CHECK、DEFAULT约束; 掌握用SQL创建UNIQUE、FOREIGN KEY、CHECK、DEFAULT约束; 掌握用SQL创建IDENTITY 属性列。

二、 实验要求

1. 执行下发的SQL文件,创建TEST数据库

2. 完成实验内容中的每个题目,要求sql语句完成,在题后粘贴能成功执行的sql语

3. 分离test数据库,将test数据库文件打包成test.zip

4. 将test.zip和实验报告电子稿一起打包成“学号姓名.zip”上交

三、 实验内容

(一) 执行下发的SQL文件,创建TEST数据库 (二) 建表时创建约束

1. 使用SQL创建新表TEST_TC表,并设置主键。

用SQL创建新表TEST_TC,并以列约束形式创建PRIMARY KEY 约束。TEST_TC表的结构定义如下:

表名:TEST_TC 包含的列如下:

教师号:TNO CHAR(2) 课号:CNO CHAR(2) 主键:(TNO,CNO)

主键约束名:PK_TEST_TC

SQL语句: USE test

CREATE TABLE TEST_TC( TNO CHAR(2), CNO CHAR(2),

CONSTRAINT PK_TEST_TC PRIMARY KEY(TNO,CNO))

(三) 在已有表中创建约束、删除约束

2. 用企业管理器为现有表TEST_TC中的CNO和TNO列创建“UNIQUE约束” 3. 用SQL为现有表C中的CN列创建“UNIQUE约束” SQL语句: USE test

ALTER TABLE C

ADD CONSTRAINT UNIQUE_C UNIQUE(CN)

4. 用企业管理器为现有表TEST_SC增加新列ID_SC,并创建此列属性为IDENTITY 5. 用SQL为现有表TEST_TC增加新列ID_TC,并创建此列属性为IDENTITY SQL语句: USE test

ALTER TABLE TEST_TC

ADD ID_TC INT IDENTITY

6. 在企业管理器中删除现有表TEST_SC的主键PK_TEST_SC和取消ID_SC列的标

识属性

7. 用SQL删除表C中CN列的UNIQUE约束UNIQUE_C SQL语句: USE test

ALTER TABLE C

DROP UNIQUE_C

8. 用企业管理器为现有表T创建DEFAULT和CHECK约束。 (1)性别列SEX的DEFAULT约束:DEFAULT=’男’

(2)PROF列与COMM列之间限定取值关系的CHECK约束。现实中的情况是:不同的职称对应不同的岗位工资,语义规则如下表所示 PROF(职称) 教授 副教授 讲师 助教 COMM(岗位津贴) 4000 2000 1500 1000

9. 用SQL给现有表S创建CHECK约束。根据语义本科生的年龄限制在14~40 岁之间。故为现有表S中的AGE列创建CHECK约束,逻辑表达式为: AGE>=14 AND AGE<=40

要求此约束对表SC中已有数据做检查。 SQL语句: USE test

ALTER TABLE S WITH CHECK

ADD CONSTRAINT CHECK_AGE CHECK (AGE>=14 AND AGE<=40) GO

10. 用SQL删除表T中的PROF和COMM之间的CHECK约束 SQL语句: USE test

ALTER TABLE T

DROP CONSTRAINT CHECK_T GO

11. 用企业管理器创建表S与表SC之间的引用关系 12. 用SQL创建表T与表TC之间的引用关系 SQL语句:

alter table test_tc with nocheck

add constraint pk_t_tc foreign key (tno) references t(tno) on delete cascade

13. 用企业管理器删除表C和表TC之间的引用关系

(四) 多种约束综合练习

14. 用SQL创建一新表TEST_S,表的结构定义如下表所示

NULL 列名 类型和长度 DEFAULT 约束条件 SNO SN CHAR(2) CHAR(8) NOT NULL NOT NULL 主键 约束名 SEX AGE CHAR(2) INT ‘男’ 18 NULL NULL 取值范围:‘男’or ’女’ >=14 <=40 DEAULT_SEX CHECK_SEX AND DEAULT_AGE CHECK_S_AGE SQL语句: use test

create table tese_s(

SNO char(2) not null, sn char(8) not null,

sex char(2) null constraint default_sex default'男'

CONSTRAINT CHECK_SEX CHECK(SEX='男' or sex='女'), AGE TINYINT NULL CONSTRAINT DEFAULT_AGE DEFAULT 18, CONSTRAINT CHECK_S_AGE CHECK(AGE>=14 AND AGE<=40)) GO

四、 实验总结心得

好艰难

本文来源:https://www.bwwdw.com/article/4i27.html

Top