韩顺平_玩转oracle_10g_实战教程第4讲

韩顺平_玩转oracle_10g_实战教程第4讲

ID:43179908

大小:522.50 KB

页数:39页

时间:2019-10-01

韩顺平_玩转oracle_10g_实战教程第4讲_第1页
韩顺平_玩转oracle_10g_实战教程第4讲_第2页
韩顺平_玩转oracle_10g_实战教程第4讲_第3页
韩顺平_玩转oracle_10g_实战教程第4讲_第4页
韩顺平_玩转oracle_10g_实战教程第4讲_第5页
资源描述:

《韩顺平_玩转oracle_10g_实战教程第4讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、主讲韩顺平玩转oracle10g实战教程主讲:韩顺平email:hanshunping@tsinghua.org.cn主讲韩顺平玩转oracle10g实战教程oracle第4讲1.维护数据的完整性2.序列(sequence)3.管理索引4.管理权限和角色主讲韩顺平玩转oracle10g实战教程维护数据的完整性■介绍数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据

2、完整性的首选.主讲韩顺平玩转oracle10g实战教程维护数据的完整性■约束约束用于确保数据库数据满足特定的商业规则。在oracle中,约束包括:notnull、unique,primarykey,foreignkey,和check五种.主讲韩顺平玩转oracle10g实战教程维护数据的完整性■notnull(非空)如果在列上定义了notnull,那么当插入数据时,必须为列提供数据。■unique(唯一)当定义了唯一约束后,该列值是不能重复的.但是可以为null。■primarykey(主键)用于唯一的标示表行的数据,当定义

3、主键约束后,该列不但不能重复而且不能为null。需要说明的是:一张表最多只能有一个主键,但是可以有多个unqiue约束。■foreignkey(外键)用于定义主表和从表之间的关系.外键约束要定义在从表上,主表则必须具有主键约束或是unique约束.,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null主讲韩顺平玩转oracle10g实战教程维护数据的完整性■check用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000~2000之间如果不再1000~2000之间就会提

4、示出错。主讲韩顺平玩转oracle10g实战教程维护数据的完整性■商店售货系统表设计案例(1)现有一个商店的数据库,记录客户及其购物情况,由下面三个表组成:商品goods(商品号goodsId,商品名goodsName,单价unitprice,商品类别category,供应商provider);客户customer(客户号customerId,姓名name,住址address,电邮email性别sex,身份证cardId);购买purchase(客户号customerId,商品号goodsId,购买数量nums);请用SQL

5、语言完成下列功能:1建表,在定义中要求声明:(1)每个表的主外键;(2)客户的姓名不能为空值;(3)单价必须大于0,购买数量必须在1到30之间;(4)电邮不能够重复;(5)客户的性别必须是男或者女,默认是男商店表设计主讲韩顺平玩转oracle10g实战教程维护数据的完整性—维护■商店售货系统表设计案例(2)如果在建表时忘记建立必要的约束,则可以在建表后使用altertable命令为表增加约束.但是要注意:增加notnull约束时,需要使用modify选项,而增加其它四种约束使用add选项。(1)每个表的主外码;(2)客户的姓

6、名不能为空值;--增加商品名也不能为空(3)单价必须大于0,购买数量必须在1到30之间;(4)电邮不能够重复;--增加身份证也不重复(5)客户的性别必须是男或者女,默认是男(6)增加客户的住址只能是‘海淀’、‘朝阳’、‘东城’、‘西城’、‘通州’、‘崇文’主讲韩顺平玩转oracle10g实战教程维护数据的完整性—维护■删除约束当不再需要某个约束时,可以删除.altertable表名dropconstraint约束名称;在删除主键约束的时候,可能有错误,比如:altertable表名dropprimarykey;这是因为如果在

7、两张表存在主从关系,那么在删除主表的主键约束时,必须带上cascade选项如象altertable表名dropprimarykeycascade;特别说明一下主讲韩顺平玩转oracle10g实战教程维护数据的完整性—维护■列级定义列级定义是在定义列的同时定义约束。■表级定义表级定义是指在定义了所有列后,再定义约束.这里需要注意:notnull约束只能在列级上定义。主讲韩顺平玩转oracle10g实战教程序列(sequence)■一个问题在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长,怎

8、么处理?主讲韩顺平玩转oracle10g实战教程序列(sequence)■介绍oracle中,是通过使用序列(sequence)来处理自动增长列。(1)可以为表中的列自动产生值.(2)由用户创建数据库对象,并可由多个用户共享.(3)一般用于主键或唯一列.■案例说明主讲韩顺平玩转oracle

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。