资源描述:
《oracle管理索引、权限和角色》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.掌握维护oracle数据完整性的技巧2.理解索引概念,会建立索引3.管理oracle的权限和角色维护数据的完整性数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。约束约束用于确保数据库数据满足特定的商业规则。在oracle中,约束包括:notnull、unique(唯一)、primarykey、foreignkey和
2、check(检查)五种。notnull(非空)如果在列上定义了notnull,那么当插入数据时,必须为列提供数据。unique(唯一)当定义了唯一约束后,该列值是不能重复的,但是可以为null。primarykey(主键)用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为null。需要说明的是:一张表最多只能有一个主键,但是可以有多个unqiue约束。foreignkey(外键)用于定义主表和从表之间的关系。外键约束要定义在从表上,主表则必须具有主键约束或是unique约束,
3、当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null。check用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000~2000之间,如果不在1000~2000之间就会提示出错。商店售货系统表设计案例---创建SQL>create table scott.goods (--商品表 goodsId char(8) primary key,--主键 goodsName varchar2(30), unitprice
4、 number(10,2) check (unitprice > 0), category varchar2(8), provider varchar2(30));SQL>create table customer (--客户表 customerId char(8) primary key,--主键 name varchar2(50) not null,--不为空 address varchar2(50), email varchar2(50) u
5、nique, sex char(2) default '男' check (sex in ('男','女')), cardId char(18));SQL>create table purchase (--购买表 customerId char(8) references customer (customerId), goodsId char(8) references goods (goodsId), nums number(5) check (nums betw
6、een 1 and 30));商店售货系统表设计案例(2)---维护增加商品名不能为空SQL>alter table goods modify goodsName not null;增加身份证不能重复SQL>alter table customer add constraint cardunique unique(cardId);增加客户的住址限制 SQL>alter table customer add constraint addresscheck check (address in ('东
7、城','西城'));删除约束当不在需要某个约束时,可以删除。SQL>altertable表名dropconstraint约束名称;特别说明:在删除主键约束的时候,可能有错误,比如:SQL>altertable表名dropprimarykey;这是因为如果两张表存在主从关系,那么在删除主表的主键约束时,必须带上cascade选项,如下:SQL>altertable表名dropprimarykeycascade;显示约束信息1.显示约束信息通过查询数据字典视图user_constraints,可以显
8、示当前用户所有的约束的信息。SQL>selectconstraint_name,constraint_type,status,validatedfromuser_constraintswheretable_name='表名';2.显示约束列通过查询数据字典视图user_cons_cloumns,可以显示约束所对应的表列信息。SQL>selectcolumn_name,positionfromuser_cons_cloumnswhereconstraint_name='约束名';3.当然也有更容易