服务器之家

服务器之家 > 正文

Oracle数据库的字段约束创建和维护示例

时间:2020-01-10 18:16     来源/作者:在路上的JavaCoder-尹骑

创建Oracle数据库的字段约束:

  1. 非空约束
  2. 唯一约束
  3. 对字段的取值的约束
  4. 默认值
  5. 外键约束
?
1
2
3
4
create table tab_class(
 class_id number primary key,
 class_name varchar2(10) not null unique
);
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
create table tab_stu(
stu_id number,
 --学生姓名,不能为空,不能重复
stu_name varchar2(20) not null unique,
 --学生姓名只能是male或female
stu_gender varchar2(6) not null check(stu_gender='male' or stu_gender='female'),
 --学生年龄只能在18到60之间
stu_age number check(stu_age >18 and stu_age <60),
 --邮箱可以不填写,填写的话不能相同
stu_email varchar2(30) unique,
stu_address varchar2(30),
--外键约束
class_id number not null references tab_class(class_id) 
);

维护已经创建好的约束:

  1. 可添加或删除约束,但不能直接修改。
  2. 可使约束启用和禁用。
  3. 非空约束必须使用MODIFY子句增加。
  4. 为表增加主键约束:
?
1
2
3
4
5
6
7
8
9
--维护约束
--创建约束
create table tab_check(
 che_id number,
 che_name varchar2(20)
);
--为表增加主键约束
alter table tab_check
add constraints tab_check primary key(che_id);

添加唯一约束

?
1
2
3
--添加唯一约束,tab_check_unique表示约束的名称
alter table tab_check
add constraints tab_check_unique unique(che_name);

添加检查约束:

?
1
2
3
4
5
6
--添加一个字段
alter table tab_check
add che_age number;
--添加检查约束
alter table tab_check
add constraints tab_check_age check(che_age>18 and che_age<60);

删除约束:

?
1
2
3
--删除主键约束
alter table tab_check
drop constraints tab_check;

禁用约束:

?
1
2
--禁用约束
alter table tab_check disable constraints tab_check;

启用约束

?
1
2
--启用约束
alter table tab_check enable constraints tab_check;

复合约束,联合主键,也就是两个字段的组合成一个主键

?
1
2
3
4
5
6
7
--联合主键
create table tab_person(
 tab_firstname varchar2(10),
 tab_lastname varchar2(10),
 tab_gender varchar2(5),
 primary key(tab_firstname,tab_lastname)
);

为表添加外键约束:

?
1
2
alter table tab_stu
add constraints tab_stu foreign key(class_id) references tab_class(class_id);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/facekbook/article/details/12214735

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部