oracle数据库中提供的5种约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle数据库中提供的5种约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4700字,纯文字阅读大概需要7分钟。
内容图文
![oracle数据库中提供的5种约束](/upload/InfoBanner/zyjiaocheng/453/b99b1703697746bfb94dfe6244c5318c.jpg)
a、一个表中最多只能有一个主键。可以多个唯一键。
b、主键所限定的列不能为null,唯一键所限定的列可以为null.
3、外键约束(FOREIGN key):
引用表:有外键约束的列所在的表。
被引用表:外键所引用的列。被引用的列只能是主键或者唯一键。
4、非空约束(NOT null):表示该列上的数据不能有null值。
5、检查性约束(check):表示该列上的数据必须满足某一个条件表达式。
如何创建约束:
1、在创建表的同时创建约束
a.列级别约束:在每个列写完之后写约束。
CREATE TABLE t_08132(id NUMBER(10) PRIMARY KEY ,
NAME CHAR(10) NOT NULL,
gender CHAR(2) CHECK (gender IN (‘男‘,‘女‘)),
email CHAR(20) UNIQUE
)
INSERT INTO t_08132 VALUES(1,‘a‘,‘男‘,‘1@neusoft.com‘)
INSERT INTO t_08132 VALUES(2,‘a‘,‘男‘,‘2@neusoft.com‘)
INSERT INTO t_08132 VALUES(3,‘c‘,‘男‘,‘3@neusoft.com‘)
INSERT INTO t_08132 VALUES(4,‘d‘,‘‘,‘4@neusoft.com‘)
INSERT INTO t_08132 VALUES(5,‘e‘,‘妖‘,‘5@neusoft.com‘)
//外键约束
CREATE TABLE t_08133( id NUMBER(10) PRIMARY KEY ,
NAME CHAR(10) NOT NULL,
deptno NUMBER(2) REFERENCES dept(deptno)
)
INSERT INTO t_08133 VALUES(1,‘a‘,20)
//给约束命名
CREATE TABLE t_08134(id NUMBER(10) CONSTRAINT t4_id_pk PRIMARY KEY ,
NAME CHAR(10) CONSTRAINT t4_name_nn NOT NULL,
gender CHAR(2) CONSTRAINT t4_gen_ck CHECK (gender IN (‘男‘,‘女‘)),
email CHAR(20) CONSTRAINT t4_em_uk UNIQUE,
deptno NUMBER(2) CONSTRAINT t4_deptno_fk REFERENCES dept(deptno)
)
INSERT INTO t_08134 VALUES(5,‘e‘,‘男‘,‘5@neusoft.com‘,NULL)
INSERT INTO t_08134 VALUES(6,‘e‘,‘男‘,‘6@neusoft.com‘,NULL)
b.表级别约束:在所有列写完之后写约束。注意,notnull约束不能写在表级别上。
CREATE TABLE t_08135(id NUMBER(10) ,
NAME CHAR(10) CONSTRAINT t5_name_nn NOT NULL,
gender CHAR(2) ,
email CHAR(20) ,
deptno NUMBER(2) ,
CONSTRAINT t5_id_pk PRIMARY KEY (ID),
CONSTRAINT t5_gen_ck CHECK (gender IN (‘男‘,‘女‘)),
CONSTRAINT t5_em_uk UNIQUE(email),
CONSTRAINT t5_deptno_fk FOREIGN KEY (deptno) REFERENCES dept(deptno)
)
约束的名字:一般规则 约束所在的表_约束所在的列_约束类型
emp_empno_pk,通常只给主键、外键、唯一键命名。
2、在创建表之后创建约束
语法:
Alter TABLE 表名 ADD [CONSTRAINT 约束名] 约束类型 [(列名列表)]
CREATE TABLE t08161 (ID NUMBER,NAME CHAR(10),sex CHAR(2) ,email CHAR(10),deptno NUMBER)
//在ID字段上添加主键约束
ALTER TABLE t08161 ADD CONSTRAINT t1_id_pk PRIMARY KEY(ID)
//在sex字段上添加检查性约束
ALTER TABLE t08161 ADD CONSTRAINT t1_email_ck CHECK (sex IN (‘男‘,‘女‘))
//在email上添加唯一性约束
ALTER TABLE t08161 ADD CONSTRAINT t1_email_uk UNIQUE (email)
//在deptno上添加外键约束,引用于dept的deptno字段。
ALTER TABLE t08161 ADD CONSTRAINT t1_deptno_fk FOREIGN KEY (deptno) REFERENCES dept(deptno)
//在name上添加非空约束
ALTER TABLE t08161 ADD CONSTRAINT t1_name_nn NOT NULL (NAME) //加不上
ALTER TABLE t08161 MODIFY NAME NULL
ALTER TABLE 表名 MODIFY 字段名 NULL/NOT NULL //通过该语法设置某一个字段为null或者not NULL.
//练习:
创建表学生表,里面包含学号(主键),姓名(非空),年龄,入班日期,
班级编号(外键,引用于dept表部门编号)
要求,在创建完表之后建立约束。
CREATE TABLE t08162 (sno NUMBER ,sname CHAR(10) ,sage NUMBER ,indate DATE,classno NUMBER)
ALTER TABLE t08162 ADD PRIMARY KEY (sno)
ALTER TABLE t08162 MODIFY sNAME NOT NULL
ALTER TABLE t08162 ADD FOREIGN KEY(classno) REFERENCES dept(deptno)
4、如何删除约束
ALTER TABLE 表名 DROP PRIMARY KEY|UNIQUE (列)|CONSTRAINT 约束名
ALTER TABLE t08162 DROP PRIMARY KEY
练习:删除t08162上的classno上的外键约束
ALTER TABLE t08162 DROP CONSTRAINT sys_c005467
5、约束的启用和禁用。
语法:
Alter TABLE 表名 Disable|ENABLE CONSTRAINT 约束名
转自:http://www.blogjava.net/stevenjohn/archive/2012/09/04/387023.html
oracle数据库中提供的5种约束
标签:
本文系统来源:http://www.cnblogs.com/OnlyCT/p/4660254.html
内容总结
以上是互联网集市为您收集整理的oracle数据库中提供的5种约束全部内容,希望文章能够帮你解决oracle数据库中提供的5种约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。