Oracle表约束的sql操作
来源:互联网 发布:无损播放软件排名 编辑:程序博客网 时间:2024/05/22 00:05
--约束--创建部门表CREATE TABLE DEPARTMENT( DEPTNO NUMBER(10), DEPTNAME VARCHAR2(30), DEPTADDRESS VARCHAR2(30), DESCRB VARCHAR2(100));INSERT INTO DEPARTMENT(DEPTNO,DEPTNAME,DEPTADDRESS,DESCRB) VALUES(1,'java','长沙','很好');INSERT INTO DEPARTMENT(DEPTNO,DEPTNAME,DEPTADDRESS,DESCRB) VALUES(2,'C++','深圳','很棒');INSERT INTO DEPARTMENT(DEPTNO,DEPTNAME,DEPTADDRESS,DESCRB) VALUES(3,'PHP','北京','很酷');INSERT INTO DEPARTMENT(DEPTNO,DEPTNAME,DEPTADDRESS,DESCRB) VALUES(4,'HTML','长沙','很帅');INSERT INTO DEPARTMENT(DEPTNO,DEPTNAME,DEPTADDRESS,DESCRB) VALUES(5,'CSS','深圳','很靓');--创建职工表CREATE TABLE EMPLOY( EMPNO NUMBER(10), ENAME VARCHAR2(20), AGE NUMBER(3), SAL NUMBER(8,2), PHONE VARCHAR2(11), DEPTNO NUMBER(10));--添加数据INSERT INTO EMPLOY(EMPNO,ENAME,AGE,SAL,PHONE,DEPTNO) VALUES(10,'luckyfrog',18,10000,'18888888888',1); INSERT INTO EMPLOY(EMPNO,ENAME,AGE,SAL,PHONE,DEPTNO) VALUES(20,'青青',18,10000,'18888888888',2);UPDATE DEPARTMENT SET DEPTADDRESS='深圳' WHERE DEPTNO=3;SELECT * FROM DEPARTMENT;SELECT * FROM EMPLOY;--添加主键 非空且不可重复ALTER TABLE DEPARTMENT ADD CONSTRAINT PK_DEPTNO PRIMARY KEY(DEPTNO);ALTER TABLE DEPARTMENT ADD PRIMARY KEY(DEPTNO);ALTER TABLE EMPLOY ADD CONSTRAINT PK_EMPNO PRIMARY KEY(EMPNO);--删除主键ALTER TABLE DEPARTMENT DROP CONSTRAINT PK_DEPTNO;--非空约束 不能为空--创建非空约束ALTER TABLE DEPARTMENT MODIFY DEPTNAME NOT NULL;ALTER TABLE EMPLOY MODIFY ENAME NOT NULL;ALTER TABLE EMPLOY ADD CONSTRAINT CK_ENAME CHECK(ENAME IS NOT NULL);--删除约束ALTER TABLE DEPARTMENT DROP CONSTRAINT sys_c0011107;--唯一约束ALTER TABLE DEPARTMENT ADD CONSTRAINT UN_DESCRB UNIQUE(DESCRB);--检查约束ALTER TABLE DEPARTMENT ADD CONSTRAINT CK_ADDRESS CHECK(DEPTADDRESS IN('长沙','深圳'));ALTER TABLE EMPLOY ADD CONSTRAINT CK_AGE CHECK(AGE>0 AND AGE<300);ALTER TABLE EMPLOY ADD CONSTRAINT CK_SAL CHECK(SAL>5000);ALTER TABLE EMPLOY ADD CONSTRAINT CK_PHONE CHECK(PHONE>10000000000);--外键约束1 当主表中的内容有子记录的时候,数据不能被删除ALTER TABLE EMPLOY ADD CONSTRAINT FK_EMPDEPTNO FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENT(DEPTNO);--删除部门编号为1DELETE FROM DEPARTMENT WHERE DEPTNO=1;DELETE FROM DEPARTMENT WHERE DEPTNO=2;--删除外键ALTER TABLE EMPLOY DROP CONSTRAINT FK_EMPDEPTNO;--外键约束2 删除的时候,当主表中的内容有子记录的时候,子表中的内容同样被删除ALTER TABLE EMPLOY ADD CONSTRAINT FK_EMPDEPTNO FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENT(DEPTNO) ON DELETE CASCADE;--外键约束3 删除的时候,当主表中的内容有子记录的时候,子表中的外键字段值置为空ALTER TABLE EMPLOY ADD CONSTRAINT FK_EMPDEPTNO FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENT(DEPTNO) ON DELETE SET NULL;--删除主表同时将子表中的外键删除DROP TABLE DEPARTMENT CASCADE CONSTRAINT;--约束状态--禁止无效 将约束关闭,对旧数据和新数据都不进行约束检查ALTER TABLE DEPARTMENT DISABLE NOVALIDATE CONSTRAINT CK_ADDRESS;ALTER TABLE DEPARTMENT MODIFY CONSTRAINT CK_ADDRESS DISABLE NOVALIDATE;--激活无效 对旧数据不进行约束检查,对新数据进行约束检查ALTER TABLE DEPARTMENT ENABLE NOVALIDATE CONSTRAINT CK_ADDRESS;ALTER TABLE DEPARTMENT MODIFY CONSTRAINT CK_ADDRESS ENABLE NOVALIDATE;--禁止有效 对旧数据进行约束检查的,不能对表中数据进行增删改ALTER TABLE DEPARTMENT DISABLE VALIDATE CONSTRAINT CK_ADDRESS;ALTER TABLE DEPARTMENT MODIFY CONSTRAINT CK_ADDRESS DISABLE VALIDATE;--激活有效 对旧数据和新数据都进行约束检查 ALTER TABLE DEPARTMENT ENABLE VALIDATE CONSTRAINT CK_ADDRESS;ALTER TABLE DEPARTMENT MODIFY CONSTRAINT CK_ADDRESS ENABLE VALIDATE;--延迟性约束ALTER TABLE DEPARTMENT ADD CONSTRAINT UN_DESCRB UNIQUE(DESCRB) INITIALLY DEFERRED;--非延迟性约束ALTER TABLE DEPARTMENT ADD CONSTRAINT UN_DESCRB UNIQUE(DESCRB) INITIALLY IMMEDIATE;--创建表的时候就创建约束--创建一张房间表CREATE TABLE HOUSE( HOUSENO NUMBER(5) CONSTRAINT PK_HOUSENO PRIMARY KEY, HOUSENAME VARCHAR2(30) CONSTRAINT UN_NAME UNIQUE, ADDRESS VARCHAR2(30) NOT NULL, AREA NUMBER(5) NOT NULL CONSTRAINT CK_AREA CHECK(AREA>20));--创建一张书本表CREATE TABLE BOOK( BOOKID NUMBER(10) CONSTRAINT PK_BOOKID PRIMARY KEY, BOOKNAME VARCHAR2(30) CONSTRAINT UN_NAME1 UNIQUE, BOOKAUTHOR VARCHAR2(30) CONSTRAINT CK_AUTHOR CHECK(BOOKAUTHOR IN('江南风','LOCKYFROG','青青')), HOUSENO NUMBER(5), PRICE NUMBER(5,2) CONSTRAINT CK_PRICE CHECK(PRICE>20), CONSTRAINT FK_HOUSENO FOREIGN KEY(HOUSENO) REFERENCES HOUSE(HOUSENO) ON DELETE CASCADE);--修改约束名ALTER TABLE BOOK RENAME CONSTRAINT UN_NAME1 TO UNBOOKNAME; --删除唯一约束ALTER TABLE BOOK DROP CONSTRAINT UNBOOKNAME;--更改成检查约束ALTER TABLE BOOK ADD CONSTRAINT CK_BOOKNAME CHECK(BOOKNAME IN('JAVA','HTML','JS','ORACLE'));
阅读全文
1 0
- Oracle表约束的sql操作
- Oracle数据库之操作表的约束
- Oracle:SQL语句--对表的操作——添加主键约束
- Oracle:SQL语句--对表的操作——添加外键约束
- Oracle约束操作(表级约束)
- Oracle 约束的相关操作
- oracle的表约束
- Oracle的表约束
- sql 表的约束
- oracle对表添加主键约束的sql语句
- Oracle表 序列 约束 视图 索引的操作
- oracle表约束的操作语法和实例
- Oracle的表操作——主键约束
- Oracle的表操作——非空约束
- Oracle的表操作——唯一约束
- Oracle的表操作——检查约束
- Oracle的表操作——外键约束
- oracle 操作表的sql
- 1028. 人口普查
- 安卓计算器的总结
- 兼容性及经验汇总
- centos 6.9 mysql 安装
- JFreeChart入门
- Oracle表约束的sql操作
- SpringBoot搭建HelloWorld工程
- Yii学习笔记之一(安装与基础环境的配置)
- 【C】快速傅里叶变换(FFT)讲解及实现
- CPU性能瓶颈
- 命令行参数
- HDU 1010 Tempter of the Bone
- 开启宽带默认限制 window提升上网速度 window百分之百上网
- Intelligence System (强连通 + 缩点)