桂 林 理 工 大 学

实  验  报  告

班级软件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 实验五 完整性相关推荐

  1. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

  2. 实验五 数据库完整性技术

    [实验目的] 1.掌握完整性的概念: 2.熟悉SQL SERVER 的完整性技术. 3.了解SQL SERVER 的违反完整性处理措施. [实验性质] 综合性实验 [实验导读] 1.完整性概述 数据库 ...

  3. Kingbase数据库实验五 PL/SQL程序设计

    Kingbase数据库实验五   PL/SQL程序设计 一.实验目的 二.实验内容及源代码 一.实验目的 能够使用流程控制语句完成简单程序的编写. 能够使用系统函数. 能够自定义简单地函数,并调用函数 ...

  4. Oracle 实验五:Oracle中的SQL使用

    实验五:Oracle中的SQL使用 一.实验目的 1.掌握SQL语言中常用系统函数: 2.掌握SQL语言的应用. 二.实验内容 1. 查询SQL中如下常用函数的使用,并举例说明(完成格式参考Lengt ...

  5. Oracle实验五 PL/SQL编程

    Oracle实验五 PL/SQL编程 [实验目的] 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数.过程和触发器 [实验内容] 编写脚本文件,调试运行脚本文件,并记录结 ...

  6. SQL Server 实验五 T-SQL编程

    SQL Server 实验五 T-SQL编程 这是一个系列,需几个文档一起看 Use YGGL--2.变量使用 --(1) Declare @female bit Set @female=0 Sele ...

  7. 实验五 数据库完整性(详细解释+错误修正版)

    /* 实验五  数据库完整性(详细解释+错误修正版) [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一 ...

  8. 数据库概论(实验五)数据库完整性

    实验五  数据库完整性 [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一个教师表Teacher(Tno ...

  9. SQL server 实验五 (sql 查询语句)

    实验五 实验知识储备: 一.当做一个查询题时 (1)首先要审题,明确你的查询对象 即select 后面的内容 (2)明确你的查询对象分别来自于哪一个表 即from 后面的内容 (3)找出查询条件/约束 ...

最新文章

  1. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页
  2. Programe_Of_Beauty :3.9 重建二叉树
  3. windows下安装各个版本memcache扩展
  4. 全云端万能小程序_万能门店全云端独立版微信小程序源码V4.0.10,全五端源码下载...
  5. Java MathContext类| hashCode()方法与示例
  6. JQuery UI AutoComplete 与 Strtus2 结合使用
  7. RegistryHelper-注册表辅助类
  8. Linux find xargs rm .orig
  9. 08 域控 架构主机 转移_win2000域控迁移至win2008
  10. sybase如何配置monitor
  11. 打印准考证服务器异常显示,注意了!打印准考证时,你可能遇到这些问题!
  12. SOLIDWORKS在机械设计行业的优势所在
  13. 阿泰,水晶报表--推拉之间
  14. 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)
  15. persepolis download manager中文版(pdm下载器)
  16. mpvue 微信小程序api_mpVue 小程序框架 SDK
  17. 可用计算机玩游戏,MONI玩 全球唯一可用电脑玩手游的平台
  18. 04-什么是阶梯式加压测试?
  19. 用两个栈实现队列(剑指offer第五题)
  20. [洛谷 1365] WJMZBMR打osu! / Easy {期望DP}

热门文章

  1. 浪擎科技SQLServer数据库同步准实时方案
  2. 你了解JLink、ST-Link、ULink、JTAG、SWD、SWIM的区别吗
  3. lamp管理 centos_基于web图片素材管理搭建
  4. 线性回归算法 及其推导
  5. 江西省电子税务局app 不能接收短信切换成流量就可以了
  6. 什么是Microsoft SharePoint 2010
  7. 信捷PLC C语言功能块与正规C语言用法的不同
  8. TCP协议实现qq群聊
  9. rowid 对应mysql_MySQL数据库之rowid
  10. 神奇的裸女图片(转)