您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
oracle-约束
发布时间:2017-11-23 15:16:38编辑:雪饮阅读()
约束:
约束类型:
NOT NULL 非空约束
UNIQUE 唯一性约束
PRIMARY KEY 主键约束
FOREIGN KEY 外键约束
CHECK 检查约束
约束语法:constraint 约束名 约束类型(列名)
注意: NOT NULL 约束不需要constraint关键字,直接跟在字段类型后面。
示例:
SQL> create table stu (
2 sno number,
3 sname varchar2(30) not null,
4 email varchar2(30),
5 gender char(2),
6 constraint pk primary key(sno),
7 constraint uemail unique(email),
8 constraint chkgen check(gender in('m','f'))
9 )
10
SQL> /
Table created.
效验:
符合全部约束的插入语法:
insert into stu values (1,'xueyin','1509272975@qq.com','m');
不符合not null约束的插入语法:
insert into stu values (1,null,'1509272975@qq.com','m');
不符合PRIMARY KEY约束的插入语法(第二条时会报错):
insert into stu values (1,'xueyin','1509272975@qq.com','m');
insert into stu values (1,'xueyin','1509272975@qq.com','m');
不符合UNIQUE约束的插入语法(第二条时会报错):
insert into stu values (1,'xueyin','1509272975@qq.com','m');
insert into stu values (2,'xueyin','1509272975@qq.com','m');
不符合CHECK约束的插入语法:
insert into stu values (3,'xueyin','1509272975@qq.com','n');
外键约束:
SQL> create table cat (
2 cat_id number,
3 catname varchar2(30),
4 constraint pkcat_id primary key(cat_id)
5 );
Table created.
SQL> create table goods (
2 goods_id number,
3 cat_id number,
4 goods_name varchar2(30),
5 constraint fkcatid foreign key(cat_id)
6 references cat(cat_id)
7 );
cat表中的cat_id为主键,但goods表中cat_id将cat表中的cat_id关联为外键
外键约束是对于两个表来说的。
这里对cat表中添加数据没有影响,但是对于goods表中添加数据时若cat_id的值在cat表中cat_id不存在时则goods表本次数据的添加就会失败。
如果cat表中某条数据在goods中有关联,则此时cat表中该条数据无法被删除。
效验:
cat表添加一条测试数据:
insert into cat values(1,'dongZuo');
符号外键约束的语法:
insert into goods values (1,1,'hunDouLuo');
不符合外键约束的语法:
insert into goods values (1,2,'hunDouLuo');
不符合外键约束的语法:
delete from cat where cat_id=1;
由于cat_id=1在goods表中已经有关联数据了,所以此处无法删除。
关键字词:oracle,约束
上一篇:oracle-隐式游标
下一篇:oracle-子查询