SQL 实验五 完整性
桂 林 理 工 大 学
实 验 报 告
班级软件16-1班 学号3162052051116 姓名张识虔同组实验者
实验名称完整性 日期 2018年 07 月9 日
一、实验目的
1、掌握数据库约束的概念;
2、熟悉SQL SERVER 的完整性约束技术。
3、了解SQL SERVER 的违反完整性处理措施。
二、实验准备
1、了解数据库完整性约束的基本概述
2、了解SQL Server完整性约束技术。 包括实体完整性、参照完整性、用户定义完整性等。
3、了解主键(PRIMARY KEY)约束
4、了解外键(FOREIGN KEY)约束
5、了解唯一性(UNIQUE)约束
6、了解检查(CHECK)约束
7、了解DEFAULT 约束
8、了解允许空值约束
9、了解触发器的使用
三、实验内容
1.在前几次实验所使用的数据库中新建一个教师信息表,表名为Teacher,字段包括Tno(教师编号),Tname(姓名),Tsex(性别),Ttitle(职称),完整性包括:设定Tno为主键,Tname非空,Tsex的取值范围为“男”或“女”。
CREATE TABLE Teacher(Tno CHAR(9) PRIMARY KEY,Tname CHAR(20) not null,Tsex CHAR(2),check(Tsex in('男','女')),Ttitle CHAR(20)
);
2. 用insert语句插入如下记录,观察实验结果:
insert into Teacher values('2016001','王明','男','讲师')insert into Teacher values('2016001','王英','女','助教')insert into Teacher values('2016002','张方','a','讲师')
学号主键不允许有出现重复 因为有两个相同的学号所以出现错误
3. 对Teacher表增加一个约束,Ttitle属性的取值范围为('助教','讲师','副教授','教授'),并插入一条记录:
insert into Teacher values('2016003','刘阳','男','研究员'),观察实验结果。CREATE TABLE Teacher(Tno CHAR(9) PRIMARY KEY,Tname CHAR(20) not null,Tsex CHAR(2) check(Tsex in('男','女')),Ttitle CHAR(20) check( Ttitle in('助教','讲师','副教授','教授'))
);
insert into Teacher values('2016003','刘阳','男','研究员');
研究员不在取值范围之内 所以出错
4. 为学生表Student增加一个约束,Ssex的取值范围为“男”或“女”。
alter table student
add constraint c1 check(Ssex in('男','女'));
5. 为选课表Sc增加一个约束,Grade的取值在0至100之间。
(提示,3,4,5是对表的结构增加约束定义,使用命令为:Alter table)
alter table Sc
add constraint c2 check(grade>=0 and grade<=100
6. 为选课表Sc增加参照完整性及违约处理,定义sno为外键,与student表中的sno关联,当删除、更新student中的元组时,级联删除、更新Sc表中的相应元组,命令为:
alter table scadd foreign key(sno) references student(sno)on delete cascadeon update cascade
使用SQL语句,将Student表中姓名为”王敏”的元组,学号更改为“201315123”,然后查看SC表中的元组是否也做了相应的更改。
更改前
使用SQL语句
update Student
set Sno='201315123'
where Sname='王敏'
更改后
7. 为选课表Sc增加参照完整性及违约处理,定义cno为外键,与course表中的cno关联,当删除、更新course中的元组时,级联删除、更新Sc表中的相应元组,并进行验证。
alter table scadd foreign key(cno) references course(cno)on delete cascadeon update cascade
删除前
删除后
8. 建立一个触发器,当向sc表中添加数据时,如果添加的数据与student表中的数据不匹配(没有对应的学号),则将此数据删除。
CREATE TRIGGER sc_ins ONsc
FOR INSERT
AS
BEGIN
DECLARE @bh char(9)
Select @bh=Inserted.snofrom Inserted
If not exists(select sno fromstudent
where student.sno=@bh)
Delete sc where sno=@bh
END
9. 创建一个修改触发器,当student表中的sno信息修改时,自动将SC表中的相应信息也修改。
(简单要求:修改仅为一条记录)
create trigger tri_student_upd
on student
for update
as
begin
Declare @oldid char(9),@newid char(9)
Select @oldid=sno fromdeleted
Select @newid=sno frominserted
Update sc set sno=@newidwhere sno=@oldid
end
update student
set sno='123456789'
where sno='201215121'
SQL 实验五 完整性相关推荐
- java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...
20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...
- 实验五 数据库完整性技术
[实验目的] 1.掌握完整性的概念: 2.熟悉SQL SERVER 的完整性技术. 3.了解SQL SERVER 的违反完整性处理措施. [实验性质] 综合性实验 [实验导读] 1.完整性概述 数据库 ...
- Kingbase数据库实验五 PL/SQL程序设计
Kingbase数据库实验五 PL/SQL程序设计 一.实验目的 二.实验内容及源代码 一.实验目的 能够使用流程控制语句完成简单程序的编写. 能够使用系统函数. 能够自定义简单地函数,并调用函数 ...
- Oracle 实验五:Oracle中的SQL使用
实验五:Oracle中的SQL使用 一.实验目的 1.掌握SQL语言中常用系统函数: 2.掌握SQL语言的应用. 二.实验内容 1. 查询SQL中如下常用函数的使用,并举例说明(完成格式参考Lengt ...
- Oracle实验五 PL/SQL编程
Oracle实验五 PL/SQL编程 [实验目的] 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数.过程和触发器 [实验内容] 编写脚本文件,调试运行脚本文件,并记录结 ...
- SQL Server 实验五 T-SQL编程
SQL Server 实验五 T-SQL编程 这是一个系列,需几个文档一起看 Use YGGL--2.变量使用 --(1) Declare @female bit Set @female=0 Sele ...
- 实验五 数据库完整性(详细解释+错误修正版)
/* 实验五 数据库完整性(详细解释+错误修正版) [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一 ...
- 数据库概论(实验五)数据库完整性
实验五 数据库完整性 [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一个教师表Teacher(Tno ...
- SQL server 实验五 (sql 查询语句)
实验五 实验知识储备: 一.当做一个查询题时 (1)首先要审题,明确你的查询对象 即select 后面的内容 (2)明确你的查询对象分别来自于哪一个表 即from 后面的内容 (3)找出查询条件/约束 ...
最新文章
- 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页
- Programe_Of_Beauty :3.9 重建二叉树
- windows下安装各个版本memcache扩展
- 全云端万能小程序_万能门店全云端独立版微信小程序源码V4.0.10,全五端源码下载...
- Java MathContext类| hashCode()方法与示例
- JQuery UI AutoComplete 与 Strtus2 结合使用
- RegistryHelper-注册表辅助类
- Linux find xargs rm .orig
- 08 域控 架构主机 转移_win2000域控迁移至win2008
- sybase如何配置monitor
- 打印准考证服务器异常显示,注意了!打印准考证时,你可能遇到这些问题!
- SOLIDWORKS在机械设计行业的优势所在
- 阿泰,水晶报表--推拉之间
- 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)
- persepolis download manager中文版(pdm下载器)
- mpvue 微信小程序api_mpVue 小程序框架 SDK
- 可用计算机玩游戏,MONI玩 全球唯一可用电脑玩手游的平台
- 04-什么是阶梯式加压测试?
- 用两个栈实现队列(剑指offer第五题)
- [洛谷 1365] WJMZBMR打osu! / Easy {期望DP}