Oracle约束总结
来源:互联网 发布:oracle数据库连接器 编辑:程序博客网 时间:2024/05/21 06:45
- 约束
约束的功能:约束某列的数据,实现一些业务的规则,防止无效的数据进入数据库,按照约束的条件的数据才能写入数据库,保证了数据的完整性,进一步解决,数据的安全和一致性,是维护数据库更容易。
约束有五种类型:
1、主键约束( Primary key, 简称 PK)
2、非空约束( not null , 简称 NN )
3、唯一约束( Unique , 简称 UK )
4、检查约束( Check , 简称 CK )
5、外键( Foreign key, 简称 FK )
约束定义有两种:表级定义,列级定义。
约束的定义在后面每个约束的时候会提到。
表级定义的用法:
constraint Student_ID_pk primary key (ID)
constraint 为表级约束的关键字
Student_ID_pk为该约束的命名
—-建议约束命名规则:表名_ 列名_约束条件的类型
—-例:Student_ID_pk
primary key为该约束的类型
ID为该表中的要加该约束的列名
多个表级约束定义的时候用逗号隔开
1、主键约束( Primary key, 简称 PK)
该约束的定义为:不能重复,不能为null。
定义可以是列级定义和表级定义
表创建后,ID号不能重复,插入语句如果添加重复ID号,则会报错。
列级定义:
create table Student( ID number(2) primary key);
表级定义:
create table Student( ID number(2), constraint Student_ID_pk primary key (ID));
2、非空约束( not null , 简称 NN )
约束该列不能为空值。
非空约束只能在列级。
姓名可以重复但是不能为空。
create table Student( ID number(2) primary key, name varchar2(10) not null);
如果要给非空约束命名:
create table Student( ID number(2) primary key, name varchar2(10) constraint student_name_nn not null);
3、唯一约束(Unique,简称UK)
约束该列数据不能重复,不能相同。
定义可以表级定义和列级定义。
邮箱可以为空但是不能重复
表级定义:
create table Student ( ID number(2) primary key, name varchar2(10) not null, email varchar2(30) unique);
列级定义:
create table Student ( ID number(2), name varchar2(10) not null, email varchar2(30), constraint Student_ID_pk primary key (ID), constraint student_email_uk unique(email));
4、检查约束( Check , 简称 CK )
检查自定义条件是否为真,为真就可以插入,更新。
定义可以表级定义和列级定义。
性别只能是男女。
列级定义:
create table Student ( ID number(2) primary key, name varchar2(10) not null, email varchar2(30) unique, sex varchar2(1) check(sex in('F','M'))//F女,M男);
表级定义:
create table Student( ID number(2), name varchar2(10)not null, email varchar2(30), sex varchar2(1), constraint student_id_pk primary key(ID), constraint student_email_uk unique(email), constraint student_sex_ck check(sex in('F','M')));
5、外键( Foreign key, 简称 FK )
外键约束定义在两个表的两个字段上( 或者一个表的两个字段上 ) , 用于保证相关两个字段的关系。
表级定义
create table Student( ID number(2), name varchar2(10)not null, email varchar2(30), sex varchar2(1), majorid number(2),//专业ID constraint student_id_pk primary key(ID), constraint student_email_uk unique(email), constraint student_sex_ck check(sex in('F','M')), constraint student_majorid_fk foreign key(majorid) references major(ID) //major为专业表);
foreign key表示定义的是外键类型
references为连接的是哪个表中的连接关键字
后面跟的表示为外表的哪个列
该操作可以添加null值
如果删除专业表中的ID号,且学生表中有相对应的行,就会报错有关联项不能删除。
如果在最后添加on delete set null,则可以在主表数据被删除的时候,表关联的数据(单独格)就置为null
constraint student_majorid_fk foreign key(majorid) references major(ID) on delete set null
如果在最后添加on delete cascade,则可以在主表数据被删除的时候,表关联的数据(整行)都会被删除。
constraint student_majorid_fk foreign key(majorid) references major(ID) on delete cascade
6、修改约束条件
alter table Studentdrop constraint student_sex_ck;//如果有约束条件了,需要先删除alter table Studentadd constraint student_sex_ck check(sex in('F','M'));
- oracle约束总结
- oracle 约束总结
- Oracle之约束总结
- ORACLE约束总结
- Oracle约束总结
- ORACLE约束总结
- Oracle知识点总结—约束
- oracle学习总结-------数据库的约束
- oracle约束
- ORACLE 约束
- Oracle 约束
- Oracle约束
- Oracle约束
- oracle约束
- Oracle约束
- Oracle 约束
- Oracle约束
- oracle 约束
- python面向对象
- 初识GO语言以及GO语言安装及环境搭建
- 【微信公众号开发】自我学习第四章:消息回复之翻译回复
- 每天一点C#(一)
- C语言memcpy()函数
- Oracle约束总结
- Python 2.7 获取网络信息(Urllib)
- 火车进出站问题---栈
- Mysql安装案例,可以借鉴!
- Toast, CheckBox, RadioButton
- 大小不固定的图片、多行文字的水平垂直居中
- WinForm两种方式实现控件拖动效果的比较
- bzoj 1026: [SCOI2009]windy数(数位dp)
- 内核签名机制