文档章节

oracle 完整性约束

sun-ing
 sun-ing
发布于 2015/05/18 22:12
字数 879
阅读 29
收藏 0
点赞 0
评论 0

完整性的定义

    是为保证数据库中数据的正确性和一致性。

分类

   域完整性,实体完整性、参照完整性和用户定义完整性。

    1.实体完整性   指关系的主关键字不为空且不重复     

              primary key  主键

    2.域完整性 保证表中数据的合理性  

              check     检查

              default   默认

              not null  不为空

              unique    唯一约束

    3.参照完整性   指建立两个关系建立联系的主外键的约束

             foreign key  外键

    4.用户自定义完整性 除了上述关键字,可以使用触发器来编写约束

在创建表的时候添加约束

   示例1  创建一个学生信息表,学号为主键,姓名不为空,性别只能为男或女,年龄在6岁到34之间,家庭地      址默认为‘山东’, 

     create table student_info(

       stuid   number primary key,                 --只将stuid设为主键

       name    varchar(30) not null,               --学生姓名不可以为空

       sex     char(2) check(sex in( '男','女')),

       age     number(2) check(age between 6 and 34),

       loc     varchar(30) default '山东'

     );

     desc student;   --查看表的结构

    除了使用上面直接加在字段名之后的约束外,还可以使用约束子句  constraint

    约束子句的语法:CONSTRAINT [constraint_name] CHECK (condition);

   示例2 创建一个职工信息表,职工号为主键,职工姓名,性别为男或者女,年龄必须大于18,学历可以为             ‘高中’或‘大学’或‘无学历’。

      create table emp_info1(

        empid number,

        name varchar(30),

        sex char(2),

        age number(2),

        edu varchar(20),

        constraint chk_empid1 primary key(empid),          --主键约束,可以把多个字段设为主键

        constraint chk_sex1 check (sex in('女','男')),     --check约束

        constraint chk_age1 check (age>=18),              

        constraint chk_edu check (edu in ('高中','大学','无学历'))

        );

     备注:约束名不可以与其他表的约束名重复,不然会提示  ORA-02264: 名称已被一现有约束条件占用

           constraint子句可以写在字段名的后面。

           比如

               create table emp_info1(

               empid number  constraint chk_empid1 primary key,

               name varchar(30),

               sex char(2),

               age number(2) constraint chk_age1 check (age>=18)

               );

在创建完表后添加约束

    创建完 一学生表之后,给此表添加一些约束

stuid

 name age sex birthday

   create table stu(    --此表没有任何的约束

       stuid number,

       name  varchar(20),

       age number(2),

       sex char(2),

       birthday date

     );

示例3 给上面的表添加 主键约束  (把studi设为主键)

   alter table stu  add contraint pk_stuid primary key(stuid);

示例4 给上面的表添加 check约束  (插入的年龄必须大于19岁)

   alter table stu  add contraint chk_age check(age>19);

示例5 给上面的表添加 非空约束   (要求姓名不能为空值)--非空约束与其他的不一样

   alter table stu modify name not null;

示例6 给上面的表添加 唯一约束    (要求姓名不可重复)

   alter table stu add constraint uni_name unique(name);


外键约束   用来建立表和表之间联系

 学生表stu_info     学号 stuid,姓名 name,专业 major   

 成绩表score_info   编号 sno  ,学号stuid,科目 course,分数 score

 示例7 在创建表的时候添加外键约束

 create table score_info(

   sno number primary key,

   stuid number,

   course varchar(20),

   score number,

   constraint fk_stuid  foreign key(stuid)  references stu(stuid)  --设为外键,关联stu_info(stuid)

   );

 示例8 在创建完表后添加外键约束

    alter table score_info add  constraint fk_stuid  foreign key(stuid)  references stu(stuid);

禁用约束:

ALTER TABLE 表名 DISABLE CONSTRAINT  约束名;

启用约束:

ALTER TABLE 表名 ENABLE CONSTRAINT 约束名;

删除约束:

ALTER TABLE 表名 DROP CONSTRAINT 约束名;


本文转载自:http://blog.sina.com.cn/s/blog_78fc24750100ws93.html

共有 人打赏支持
sun-ing
粉丝 0
博文 14
码字总数 1934
作品 0
昌平
oracle 数据完整性

数据完整性分类 1. 域完整性 域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。 2. 实体完整性 实体完整性也可称为行完整性,要求表中每一行有一个唯一的标识符...

122269875 ⋅ 2017/04/04 ⋅ 0

ORACLE支持五种类型的完整性约束

ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满...

JackMo2015 ⋅ 2016/06/15 ⋅ 0

Oracle数据库对象简介

Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的...

有些服务器 ⋅ 2015/12/12 ⋅ 0

十五、oracle 约束

一、维护数据的完整性 数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则,在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因...

openlife ⋅ 2015/07/13 ⋅ 0

Oracle 约束详解

一 约束的定义 约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行...

whshurk ⋅ 01/03 ⋅ 0

数据库简介

1 什么是数据库 1)SQL=Structure Query Language 2)存数据的仓库/集合,并有一定的规则结构 3)SQL是客户端操作数据库一种工具/命令,主要以存取为主 2 各种常用数据库简介 Oracle/Java 一个G...

chenruibing ⋅ 2015/06/15 ⋅ 0

浅谈数据库约束

国有国法 家有家规 其实很多时候技术和生活息息相关,怎样的需求就会有出来解决方案 数据库也是那么一个神奇的东西,毕竟是关系型数据库,数据独立而又可以表表关联,有时候就需要约束,在某些...

长路慢 ⋅ 01/04 ⋅ 0

维护数据完整性

1、数据完整性规则:域完整性(Domain 栏位列)、实体完整性(Entity 实体行)、参照完整性(Reference) 数据完整性三种方式:a.使用应用代码;b.触发器trigger通过一段代码(过程)满足某个...

spider1983 ⋅ 2014/04/17 ⋅ 0

Oracle约束的状态及验证机制

一、Oracle约束的状态 Oracle完整性约束的状态有4种,分别是ENABLE、DISABLE、VALIDATE、NOVALIDATE。 ENABLE 表示Oracle将检查要插入或更新的数据库中的数据是否符合约束; DISABLE 表示表中...

hbxztc ⋅ 2017/08/11 ⋅ 0

SQL 约束,事务,触发器,存储引擎,多表查询

SQL约束 SQL约束主要有以下几种: NOT NULL: 用于控制字段的内容一定不能为空(NULL)。 UNIQUE: 控件字段内容不能重复,一个表允许有多个 Unique 约束。 PRIMARY KEY:也是用于控件...

木木侠 ⋅ 2016/08/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 13分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 20分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 25分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 26分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 30分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 34分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 46分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部