广告
返回顶部
首页 > 资讯 > 数据库 >plsql字段约束
  • 226
分享到

plsql字段约束

plsql字段约束 2019-09-05 05:09:24 226人浏览 猪猪侠
摘要

第五章  字段约束   初识约束   约束是数据库用来确保数据满足业务规则的手段,对数据做的条件限制。   约束的类型 1. 主键约束(PRIMARY KEY) 2. 唯一性约束(UNIQUE) 3. 非空约束(NOT NULL)

plsql字段约束

第五章  字段约束

 

初识约束

  约束是数据库用来确保数据满足业务规则的手段,对数据做的条件限制。

 

约束的类型

1. 主键约束(PRIMARY KEY)

2. 唯一性约束(UNIQUE)

3. 非空约束(NOT NULL)

4. 检查约束(CHECK)

5. 外键约束(FOREIGN KEY)

 

 

主键约束(PRIMARY KEY)

  1. 非空加唯一约束;

  2. 一个表只有一个主键;

  3. 主键会默认加索引

student_id number primary key

 

alter table student add constraint stu_id_pk primary key(stu_id);

 

唯一性约束(UNIQUE)

对于UNIQUE约束来讲,索引是必须的。如果不存在,就自动创建一个(UNIQUE的唯一性本质上是通过索引来保证的)

UNIQUE允许null值,UNIQUE约束的列可存在多个null。这是因为,Unique唯一性通过btree索引来实现,而btree索引中不包含null。所以,这也造成了在where语句中用null值进行过滤会造成全表扫描。

student_num  number unique

alter table table_name add constraint student_code_uq unique(student_num);

删除约束

alter table table_name drop constraint constraint_name;

 

非空约束(NOT NULL)

   非空约束作用的列也叫强制列。顾名思义,强制键列中必须有值,当然建表时候若使用default关键字指定了默认值,则可不输入。

score_name varchar2(32) not null

 

alter table table_name modify student_name not null;

 

检查约束(CHECK)

检查约束可用来实施一些简单的规则,比如列值必须在某个范围内。检查的规则必须是一个结果为true或false 的表达式

student_sex    varchar2(1) check(student_sex in("男","女")),

alter table student add constraint stu_sex_ck check(stu_sex in("男","女"));

 

score_value number check(score_value between 0 and 100)

 

alter table student add constraint stu_age_ck check(stu_age between 1 and 100);

 

外键约束(FOREIGN KEY)

  外键约束定义在具有父子关系的子表中,外键约束使得子表中的列对应父表的主键列,用以维护数据库的完整性。不过出于性能和后期的业务系统的扩展的考虑,很多时候,外键约束仅出现在数据库的设计中,实际会放在业务程序中进行处理。外键约束注意以下几点:

  1. 外键约束的子表中的列和对应父表中的列数据类型必须相同,列名可以不同
  1. 对应的父表列必须存在主键约束(PRIMARY KEY)或唯一约束(UNIQUE)
  2. 外键约束在子表里,外键的取值范围不能大于父表键值
  3. 如果想删除主表的主键,需要先删除子表的关联字段

student_num  number references table_name(student_num)

 

alter table student add constraint tea_id_fk foreign key(tea_id) references teacher (tea_id);

 

注意:

不过在真正的企业开发中,除了主键约束这类具有强需求的约束,像外键约束,检查约束更多时候仅仅出现在数据库设计阶段,真实环境却很少应用,更多是放到程序逻辑中去进行处理。

您可能感兴趣的文档:

--结束END--

本文标题: plsql字段约束

本文链接: https://www.lsjlt.com/news/4915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作