数据库实验指导(7)

2020-04-15 00:39

FILEGROWTH=1MB ) (4)单击【分析】按钮(5)单击【执行】按钮

,检查语法错误,编译通过则会提示消息“命令已成功完成“。

执行语句,若成功,在查询窗口会提示“命令已成功完成”。

刷新【对象资源管理器】可看到新建的数据库。如图2-5所示。 (6)单击保存可保存即可将SQL代码段保存为.sql文件。

图2-5创建BOOK据库

2. 为BOOK数据库建立数据表并创建约束

在信息系统中,数据库中数据录入都是通过应用程序来完成的,在数据录入时应注意: 1)数据输入应该在所有表结构定义和各类完整性约束完成以后进行,以免出现约束外的不合理数据。

2)数据表数据输入要有先后顺序,在关系约束中作为主表的数据应该先输入,外表数据后输入。

3)数据输入时要注意已经设置的各种完整性约束。 参考步骤(SQL语句创建):

1)单击新建查询窗口,输入以下代码,即可创建表T_Teacher1(因表T_Teacher已存在为示例取名T_Teacher1.)结果如图2-6所示。 USE BOOK -- 转到STUDENT数据库 23

CREATE TABLE T_Teacher1 -- 在STUDENT数据库中创建表STUDENT ( } Teacher_id CHAR(8) PRIMARY KEY, Teacher_name CHAR(20) NOT NULL, Sex CHAR(2) NOT NULL, Title CHAR(10) NOT NULL, Telephone Varchar(40), Enter_date Datetime,

图表 2-6

2)设置数据完整性约束。

? 用SQL语句实现主要约束实现及验证

非空(Not Null): 如“T_Teacher”表的Teacher_name,在创建时Teacher_name CHAR(20) NOT NULL,即实现非空约束。

验证:添加记录时若Teacher_name不赋值则记录无法添加。

若建表时未给此约束,则可用以下语句完成非空约束:(将字段Telephone设置为非空) 创建约束 USE BOOK update T_Teacher set Telephone='' where Telephone is null 24

alter table T_Teacher alter COLUMN Telephone nvarchar(40) not null 验证约束 use BOOK insert into T_Teacher(Teacher_id,Teacher_name,Sex,Title) values(20100006,'张三','男','教授'); 插入记录是不插入telephone字段会报错:不能将值NULL 插入列'Telephone',表'BOOK.dbo.T_Teacher';列不允许有Null 值。INSERT 失败。

?

默认值约束(Default):在“T_Teacher”表中Sex字段设置默认值为“男”。 验证:添加记录时不对Sex字段赋值(注意不是空字符),添加完成后,该字段自动保存为“男”。查看结果已默认插入此条信息且Sex为“男”。 创建约束 use BOOK alter table T_Teacher add constraint Sex default '男' for Sex ; 验证约束 use BOOK insert into T_Teacher(Teacher_id,Teacher_name,Title,Telephone) values(20100006,'张三', '教授','13971280923'); ? CHECK约束:如“T_Teacher”表中性别只能填“男”或者“女”。可利用以下代码

实现

验证:添加或修改记录时若填入Sex的不是“男”或者“女”做无法完成插入。 创建约束 alter table T_Teacher add constraint Sex check([Sex]='男' OR [Sex]='女'); 验证约束 use BOOK insert into T_Teacher(Teacher_id,Teacher_name,Sex,Title,Telephone) values(20100006,'张三','无','教授','13971280923'); 验证约束会报错:插入INSERT 语句与CHECK 约束\冲突。该冲突发生于数据库\,表\。

?

主关键字约束(Primary Key):教师表中“Teacher_id”是主关键字,建表时一般会直接设置主键详见建表代码。

验证:修改一条记录,使Teacher_id为已存在的,则无法实现先修改。验证操作略。 ?

外键:以T_BookOrder的Teacher_id为例建立T_BookOrder关于主表T_Teacher的外键。

验证:单击【关系】按钮

,查看关系即可看到建立的外键。名称为: FK_Teacher_id

25

use BOOK alter table T_BookOrder add constraint FK_Teacher_id foreign key (Teacher_id) references T_Teacher (Teacher_id);

?

唯一性约束(Unique):“T_Publisher”表的出版社名唯一。

验证:修改一条记录,使出版社名称为已出现过的,则无法完成修改,验证结果略。

创建约束 use BOOK alter table T_Publisher add constraint Publishername Unique (Publisher); 验证约束 use BOOK insert into T_Publisher(Publisher_id, Publisher,Telephone) values(03,'人民教育出版社', '021-8723423'); insert into T_Publisher(Publisher_id, Publisher,Telephone) values(04,'人民教育出版社', '021-8723423'); 验证约束会报错:违反了UNIQUE KEY 约束'Publishername'。不能在对象'dbo.T_Publisher' 中插入重复键。

? 索引:给表T_Publisher的字段Publisher添加普通索引。 use BOOK create index Publisher_name on T_Publisher (Publisher); 验证:在设计窗口单击【管理索引和键】

参考步骤(视图操作):

按钮可查看到即可。

1)在对象资源管理器展开BOOK数据库,鼠标右键单击其下【表】选项选择【新建表】命令,在右侧的表设计视窗中按以下表2-2所示输入各字段名称并定义各字段的属性。

2)设置数据完整性约束。

单击【保存】按钮以”T_Teacher”作为表名,保存新建的表。用同样的方法分别新建其他3张表。注意各表都有一些数据完整性约束设置和索引。

主要约束及验证如下: ?

非空(Not Null): 如“T_Teacher”表的Teacher_name在允许Null列去掉对勾,表示teacher_name不能为空。

验证:添加记录时若Teacher_name不赋值则记录无法添加。如图2-7所示提示。

表格 2-2 T_Teacher表结构

字段名称 字段说明 类型定义 26

属性限定 索引 关系(外键)

Teacher_id Sex Title Telephone Enter_date ?

教师工号 性别 职称 联系电话 入校时间 Char(8) Char(20) Char(2) Char(10) Varchar(40) Datetime Primary Key Not Null Not Null(男或女) Not Null 主索引 索引 —— —— —— —— Teacher_name 教师姓名 CHECK约束:如“T_Teacher”表中性别只能填“男”或者“女”。鼠标右击设计窗口选择【CHECK约束】在表达式处输入([Sex]='男' OR [Sex]='女')实现约束填写约束名称。如需其他约束可点击添加,再建立下一约束。

验证:添加或修改记录时若填入Sex的不是“男”或者“女”做无法完成改动,如图2-8所示提示。

图2-7 非空约束验证

? 默认值约束(Default):在“T_Teacher”表中Sex字段设置默认值为“男”。在设计窗口,选中Sex字段,在下方的【列属性】选项卡中“默认值或绑定”后填入‘男’即可。

验证:添加记录时不对Sex字段赋值(注意不是空字符),添加完成后,该字段自动保存为“男”。验证结果略。

27


数据库实验指导(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2019-2020学年八年级历史下册 第二单元《社会主义道路的探索》单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: