欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    实验四数据控制(完整性部分).ppt

    • 资源ID:5258450       资源大小:431.50KB        全文页数:35页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验四数据控制(完整性部分).ppt

    实验四 数据控制(完整性部分),1.实体完整性,【例 1】定义表的主码。关系模型的实体完整性在 CREATE TABLE 中用 PRIMARY KEY 定义。定义主码的方法 分为定义为列级约束条件和定义为表级约束条件两种。,例 1-1定义表 Student,并将其中的 Sno 属性定义为主码。,首先建立一个模式,然后打开查询分析器 输入:CREATE TABLE STUDENT(SNO CHAR(7)PRIMARY KEY,SNAME CHAR(8)NOT NULL,SSEX CHAR(2),SAGESMALLINT,SDEPT CHAR(20);或者:CREATE TABLE STUDENT(SNOCHAR(7),SNAMECHAR(8),SSEXCHAR(2),SAGE SMALLINT,SDEPTCHAR(20),PRIMARY KEY(SNO);,模式下的就会建一个STUDENT表,例 1-2定义表 SC,将其中的属性 Sno,Cno 定义为主码。,CREATE TABLE 4.SC(SNO CHAR(7)NOT NULL,CNO CHAR(4)NOT NULL,GRADE SMALLINT,PRIMARY KEY(SNO,CNO);,2.参照完整性。,【例 2】定义表的外码。关系模型的参照完整性是在 CREATE TABLE 中用 FOREIGN KEY 语句来定义的,并用REFERENCES 来指明外码参照的是哪些表的主码。,定义表 SC,其中 Sno 参照表 Student 的主码 Sno,Cno 参照表 Course 的主码 Cno。,CREATE TABLE SC(SNO CHAR(7)NOT NULL,CNO CHAR(4)NOT NULL,GRADE SMALLINT,PRIMARY KEY(SNO,CNO),FOREIGN KEY(SNO)REFERENCES STUDENT(SNO),FOREIGN KEY(CNO)REFERENCES COURSE(CNO);,注意,运行前先把之前做的SC表删除,并建立COURSE表,输入下列数据,CREATE TABLE 4.COURSE(CNOCHAR(7)PRIMARY KEY,CNAME CHAR(8)NOT NULL,TNOCHAR(2)NOT NULL,CREDIT INTEGER NOT NULL);,COURSE表,SC表,3.用户定义完整性。,【例 3】用户定义的属性上的约束条件。例 3-1列值非空。在定义 SC 表时,Sno、Cno 和 Grade 属性都不允许取空值。在不特别声明的情况下,非码属性的值是允许取空值的。,一样先删除之前的SC表,CREATE TABLE“4”.”SC”(SNOCHAR(7)NOT NULL,/*列值非空的约束 NOT NULL*/CNOCHAR(4)NOT NULL,GRADESMALLINT NOT NULL);,新SC表,例 3-2列值唯一。建立部门表 DEPT,要求部门名称 Dname 取值唯一,部门编号 Deptno 属 性为主码。,CREATE TABLE 4.DEPT(DEPTNO NUMERIC(7)PRIMARY KEY,DNAME VARCHAR(9)UNIQUE,/*UNIQUE 约束要求 Dname 取值唯一*/LOCATION VARCHAR(10);,DEPT表,例 3-3CHECK 短语指定列值应该满足的条件。定义表 Student,属性 Ssex 的值只允许取“男”或“女”;先删除之前的STUDENT的表,CREATE TABLE 4.STUDENT(SNOCHAR(7)PRIMARY KEY,SNAME CHAR(8)NOT NULL,SSEXCHAR(2)CHECK(SSEX IN(男,女),/*CHECK 语句约束条件*/SAGESMALLINT,SDEPTCHAR(20);,STUDENT,定义表 SC,属性 Grade 的值定义在 0100 之间。删除之前的SC表,CREATE TABLE 4.SC(SNO CHAR(7)NOT NULL,CNO CHAR(4)NOT NULL,GRADE SMALLINT CHECK(GRADE0 AND GRADE100),/*CHECK 语句约束*/PRIMARY KEY(SNO,CNO),FOREIGN KEY(SNO)REFERENCES 4.STUDENT(SNO),FOREIGN KEY(CNO)REFERENCES 4.COURSE(CNO);,SC,【例 4】用户定义的元组上的约束条件。,CHECK 短语不光能够定义属性列上的约束条件,还允许用户定义元组级的约束条件。定义表 Student,要求当学生性别为男时,其名字不能以 Ms.打头。,STUDENT,CREATE TABLE 4.STUDENT(SNOCHAR(7)PRIMARY KEY,SNAME CHAR(8)NOT NULL,SSEXCHAR(2),SAGESMALLINT,SDEPT CHAR(20),CHECK(SSEX=女 OR SNAME NOT LIKE Ms.%);/*定义了 Sname 和 Ssex 之间的约束条件*/,4.CONSTRAINT 完整性约束命名子句。,【例 5】在定义表时利用约束命名子句对完整性约束条件命名,能够灵活地增加或删除一个 完整性约束条件。例 5-1定义表 Student,要求学号在 9000099999 之间,姓名不能取空值,年龄小于 30,性别只能是“男”或“女”。要求全部用约束命名子句实现。,STUDENT,CREATE TABLE 4.STUDENT(SNO NUMERIC(5)CONSTRAINT C1 CHECK(SNO BETWEEN 90000 AND 99999),SNAME VARCHAR(20)CONSTRAINT C2 NOT NULL,SAGE NUMERIC(3)CONSTRAINT C3 CHECK(SAGE 30),SSEX VARCHAR(2)CONSTRAINT C4 CHECK(SSEX IN(男,女),CONSTRAINT STUDENTKey PRIMARY KEY(SNO);,在表 Student 上共定义了 5 个约束条件,包括主码约束以及 C1、C2、C3、C4 四个列级 约束。,例 5-2修改表 Student 中的完整性限制,去掉对性别的限制,并将年龄的限制由小于 30 改 为小于 40。,ALTER TABLE 4.STUDENT/*去掉对性别的限制条件 C4*/DROP CONSTRAINT C4;ALTER TABLE 4.STUDENT/*先删掉原来的约束条件再增加一个新的约束条件*/DROP CONSTRAINT C3;ALTER TABLE 4.STUDENTADD CONSTRAINT C3 CHECK(SAGE 40);,5.触发器。触发器可以看成是一类特殊的存储过程,在满足某个特定条件时自动触发执行,是提高数据库服务器性能的有力工具。触发器分为三类,更新触发器、插入触发器和删除触发器。能够定义触发器的用户有:,1)表的所有者;2)系统管理员;3)拥有创建触发器的权限,且拥有对操作对象的相应的操作权限的用户。,【例 6】定义表 TAB,并在其上定义触发器 TRI,在对 TAB 的插入和更新前检查,如果插入 或更新的值在 1001000 之间的话,将值置为 50;如果值大于 1000 的话,则给出新值不允 许大于 1000 的提示。,CREATE TABLE 4.TAB(col int);INSERT INTO 4.TAB VALUES(10);INSERT INTO 4.TAB VALUES(20);CREATE TRIGGER TRI BEFORE UPDATE OR INSERTON 4.TAB FOR EACH ROW AS BEGIN IF new.col 100 AND new.col 1000 THEN RAISE EXCEPTION New values can not more than 1000;END IF;END;,TAB表,TRI触发器,检测:1)向表 TAB 插入数据(150)。执行:INSERT INTO 4.TAB VALUES(150);,结果:插入的数据为 150。值在 1001000 之间,触发器 TRI 自动执行,将插入 的值置为 50。,2)对表中的数据进行更新,将 20 更新为 1500。执行:UPDATE TAB SET COL=1500 WHERE COL=20;,结果:系统报出New values can not more than 1000的错误,对表进行查询后发现,表中的数据并没有发生改变。说明在更新数据时,值大于 1000则触发触发器 TRI 自动执行,系统报错,更新无效。,【例 7】删除触发器 TRI。DROP TRIGGER TRI ON TAB;,删除触发器 TRI 之后,在对 TAB 进行插入和更新就不再有以上限制了。,SEE YOU,

    注意事项

    本文(实验四数据控制(完整性部分).ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开