Oracle 数据完整性(学习笔记)

数据完整性分类

1. 域完整性

域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。

2. 实体完整性

实体完整性也可称为行完整性,要求表中每一行有一个唯一的标识符,即primary key。

3. 参照完整性

又称之为引用完整性。

主键和唯一键的主要区别:

(1) 一个数据表只能创建一个主键约束,但可以创建若干个唯一键。

(2)主键字段值不允许为空,而唯一键可以。

相同点:

两者均不允许表中的对应字段存在重复值,在创建主键和唯一键约束时会自动产生索引。

列级定义:

列级定义指在定义列的同时定义约束。

表级定义:

指在定义完所有列之后定义约束。

创建表时添加主键:

sql> create table table_name (field_name char(8) primary key);

创建表时添加外键:

sql> create table table_name(field_name char(8) references table_name2(field_name2));

其中 table_name2是要引用的表名,field_name2是table_name2中对应的主键,且 field_name 与field_name2数据类型必须完全一样。

如果在建表时忘记添加约束,则可以用alter table命令为表添加约束。但是要注意,增加NOT NULL时用modify选项,增加primary key、unique、foregin key、check时用add选项。

增加NOT NULL:

sql> alter table table_name modify field_name not null;

增加unique:

sql> alter table table_name add constraint constraint_name unique(field_name);

或者:

sql> alter table table_name add unique(field_name);

增加primary key:

sql> alter table table_name add constraint constraint_name primary key(field_name);

或者:

sql> alter table table_name add primary key(key);

增加foreign key:

sql> alter table table_name add constraint constraint_name foreign key (field_name1)
 references table_name2(field_name2);

或者:

sql> alter table table_name add foreign key(field_name1) references 
table_name2(field_name2);

删除约束:

sql> alter table table_name drop constraint constraint_name;

或者:

sql> alter table table_name drop unique(field_name);
sql>alter table table_name drop primary key;

在删除主键约束时,可能产生错误,这是因为两张表存在主从关系,那么在删除主键约束时,必须加上cascade。

sql> alter table table_name drop primary key cascade;
时间: 2024-10-12 21:41:25

Oracle 数据完整性(学习笔记)的相关文章

Oracle Rac11g 学习笔记

查看集群节点状态 命令是olsnodes -i 显示每个节点的VIP, -n 显示每个节点在RAC集群中的编号 -p 显示每个节点所使用的私有IP地址 -s 显示每个节点的状态(activive或者inactive) 列车集群中所有资源 crs_stat -t 查看crs资源状态 crsctl check crs 查看ctss服务的状态 crsctl check ctss 查看集群中所有节点状态 crsctl check cluster -all 查看ASM实例进程 ps -ef | grep

oracle 触发器 学习笔记

触发器 是特定事件出现的时候,自动执行的代码块.类似于存储过程,但是用户不能直接调用他们. 功能: 1. 允许/限制对表的修改 2. 自动生成派生列,比如自增字段 3. 强制数据一致性 4. 提供审计和日志记录 5. 防止无效的事务处理 6. 启用复杂的业务逻辑 开始 create trigger biufer_employees_department_id before insert or update of department_id on employees referencing old

oracle入门学习笔记

Oracle学习笔记 推荐书籍:<Oracle有用教程(从入门到精通)>.<深入浅出Oracle> 1. 当前主流数据库: |-微软:SQL Server.access |-瑞典:Mysql |-IBM: DB2 |-Sybase: Sybase |-Oracle:Oracle A. 小型数据库:access.foxbase. 负载量小,100人内,成本千元内,安全性要求不高. 比如留言板等. B. 中型数据库:Mysql.SQL Server.Informix.日訪问量5000-

Oracle数据库学习笔记(一)

Oracle以其跨平台操作系统和硬件平台.稳定性.安全性.性能优越而著称于世.主要包括两个方向: 1).数据库管理员方向,主要学习对Oracle本身进行管理,提升性能,优化数据存储结构: 2).数据库程序员方向,在Oracle基础上对Oracle进行程序开发. PL/SQL是Oracle公司对关系型数据库的标准语言SQL的过程化语言扩展,特征包括:变量定义.控制结构.自定义的子程序.对象类型. PL/SQL程序的最基本的组成单元是PL/SQL块,分为:匿名块.命名块.命名块又可分为子程序.包.触

Oracle数据库学习笔记

创建表的同时插入数据:create table zhang3 as select * from zhang1;create table zhang3(id,name) as select * from zhang1; 将查询数据插入到某个表中:insert into zhang3 select * from zhang1;insert into zhang3(id,name) select * from zhang1; 有关完整性约束,表名,列名的两个视图:user_constraints, u

Oracle数据库学习笔记2

create tablespace jym datafile 'D:\newer' size 2M autoextend on;       创建一个表空间 drop tablespace; 删除一个表空间 (必须先执行这个命令才能删除创建上面在D盘的newer文件,不然启动Oracle会报错) create user zhang identified by 123456; 创建一个用户 grant connect to zhang; 授权给zhang用户连接服务器的权限 grant selec

Oracle数据库学习笔记1(11g版本的安装&amp;PL/SQL工具的安装和使用)

1.安装Oracle11g 1.1 .口令就是数据库登录密码,学生党用口令就设置简单点了,违反Oracle口令设置规则也可以继续下一步 1.2 Oracle默认给三个账户用户scott(普通用户),需要在安装界面的时候把锁定取消,后面给上口令密码.SYS用户:超级管理员,权限最高,它的角色是DBA.默认密码是change_on_install.具有创建数据库的权限.我安装的时候口令统一设置了****.SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator,默认密码manage

Oracle简单学习笔记

创建用户 1 CREATE USER username identified by password;//这是最简单的用户创建SQL语句. 2 CREATE USER username identified by password default tablespace users temporary tablespace temp;//增加指定表空间的SQL语句. 分配用户权限 1 grant 权限/角色 to 用户;//把权限或角色的权限 分配给 用户. 2 revoke 权限/角色 from

Oracle RAC学习笔记:基本概念及入门

2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real application clusters introduction     1.什么是cluster     一个cluster是由两个或是多个独立的.通过网络连接的servers组成的.几个硬件供应商多年以来提供了Cluster性能的各种需求.一些Clusters仅仅为了提供高可用性的,在当前活动的node发生故障时转移到次节点node.另一些是为了提供分

oracle从零开始学习笔记 三

笔试题 设有关系EMP(ENO,ENAME,SALARY,DNO)其中各属性的含义依次为职工号.姓名.工资.所在部门号, 以及关系DEPT(DNO,DNAME,MANAGER)其中各含义依次为部门号.部门名称.部门经理的职工号 1.请通过SQL语句创建表EMP.DEPT. create table emp(eno number(5) primary key ,ename varchar2(5),salary number(8),dno number(3)); create table dept(