前言:约束分为两种,一种是列约束,一种是表约束。列约束是指定义在一个列上的约束,表约束指定义在两个或多个列上的约束。
10.PRIMARY KEY 约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME PRIMARY KEY (FIELD[,FIELD...]);
11.UNIQUE约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME UNIQUE (FIELD);
12.CHECK约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME CHECK (FIELD 表达式);
其中:CHECK 约束相当于validate,也分为列约束,表约束,并且对一个列可以定义多个CHECK约束。
13.FOREIGN KEY 约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME FOREIGN KEY FIELD REFERENCES MYTABLE2 (FIELD) ON DELETE CASCADE/SET NULL/ NO ACTION;
其中 ON DELETE分为三种模式:
CASCADE:级联删除 ,默认;
SET NULL :关联子表设置为NULL ,
NO ACTION:无操作,这种操作会发生错误,所以会被禁止。
14.删除、禁止、激活约束:
删除:
ALTER TABLE MYTABLE DROP CONSTRAINTS NAME;
禁止:
ALTER TABLE MYTABLE DISABLE CONSTRAINTS NAME;
ALTER TABLE MYTABLE MOIDFY CONSTRAINTS NAME DISABLE;
激活:
ALTER TABLE MYTABLE ENABLE CONSTRAINTS NAME;
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME ENABLE;
15.使用约束的四种状态:
ENABLE VALIDATE:激活约束状态,对已存在的记录进行约束检查,并对以后添加的数据进行检查;
ENABLE NOVALIDATE:激活非验证约束,不对已存在 的记录进行约束检查,只能以后添加的数据进行检查;
DISABLE VALIDATE:禁止验证状态,对已存在的记录进行约束检查,ORACLE不允许添加数据;
DISABLE NOVALIDATE:禁用非验证状态,不对已厦的记录进行检查,也不对以后添加的数据进行检查。
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME ENABLE VALIDATE/*/*/*.
16.延迟约束:
状态:
DEFERRABLE INITIALLY IMMEDIATE:在添加或修改语句时立即检查约束 ;
DEFERRABLE INITIALLY DEFERRED:在添加或修改语句时不立即检查,只在提交事务时检查约束 。
延迟约束性,只能在第一次ALTER TABLE ADD CONSTRAINTS时添加,不能建立约束之后又修改或添加约束的延迟性。但是可以在建立延迟性后修改状态。例如 :
建立 :
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME PRIMARY KEY/UNIQUE/*/* FIELD_NAME DEFERRABLE INITIALLY IMMEDIATE;
修改:
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME INITIALLY DEFERRED;
或者:
SET CONSTRAINT NAME DEFERRED;
17.查看约束:
查看表中的约束:
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,DEFERRED,DEFERRABLE,STATUS FROM USER_CONSTRAINTS ; 可以添加WHERE条件,比如:WHERE TABLE_NAME='MYTABLE';
查看列中的约束:
COLUMN COLUMN_NAME FORMAT A10;
SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLUMNS ;同样可以添加WHERE条件。
分享到:
相关推荐
oracle 多表查询与数据修改学习笔记,主要是让大家熟悉三个或四个表的连接查询,熟练掌握delete、update与insert的语法。
oracle 日常学习的记录…… java调用oracle的存储过程 oracle number(1)一般对应于Java中的类型 Oracle常用函数 oracle触发器new Oracle中自增字段的两种方法 字典表查询
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
oracle day3 笔记 外连接: 查找每个员工的经理ID select e.first_name "Employee",m.first_name "Manager" from s_emp e,s_emp m where e.manager_id=m.id(+); 一、组函数 group 组 group by 分组子句,...
Oracle数据库学习笔记(来自韩顺平 Oralce视频教程) 个人总结的Oracle数据库学习笔记,不是很全,但是也包括了大致的内容。我把笔记转化为PDF,方便阅读。附上一些内容和下载链接。 ORACLE学习笔记... 2 一、 ...
Oracle查看表结构.txt SQL作业代理禁用.txt sql.txt SQL-Transaction事物一起执行.txt sq和oracle的区别.txt sysobjects中type字段值意思txt W3School例句.txt 按照中文首字母排序.txt 笔记.txt 查询字段是否有...
参照完整性,是指一个表中的字段的值要参照另一个表中字段的值(主键字段的值),那么在该表中该字段称为外键,即通过外键来实现 参照完整性。主键所在的表称为主键表,主键表要优先创建,再创建外键表。
oracle精华文档,内容详实, SQL(结构化查询语言) Select 字段(*) from 表名 where ...group by ...having ...order by DDL(数据定义语言) Create table 表名 Drop table 表名 Alter table 表名 add 列名 数据...
纯手写笔记 SELECT [DISTINCT] * | 列 [别名] FROM 表名称 1 [CROSS JOIN 表名称2] [NATURAL JOIN 表名称2] [JOIN 表名称 ON(条件)|USING(字段)] [LEFT | RIGHT | FULL OUTER JOIN 表名称2]; 1. 交叉连接:...
本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 第一讲 Oacle关系数据库 9 一....
Oracle字段上建立并使用索引 29 用Windows脚本宿主自动化Oracle工具 31 进程结构和内存结构 32 Oracle监控数据库性能的SQL汇总 36 Oracle如何精确计算row的大小 38 PL/SQL编程 39 数据库的分组问题 41 oracle知识 42...
1、创建表语法 create table 表名(column datatype [default expr][,column …]) default 约束 说明略 2、利用子查询创建表 create table 表名 as select * from u表 二、修改表 1、添加一个新列 oracle:alter ...
oracle plsql课堂笔记,记录常用的SQL语句和字段解释,都是从培训中慢慢积累的,希望对大家有用。
接下来进行 SQL2 的调优,和优化 SQL1 时一样首先开始查看分析 SQL2 语句的执行 计划,发现 SQL2 的执行计划也是全表扫描,这里 t1.name=的... 排序是 T1 表的 col5 字段,展现字段又没有这个字 段,真的需要这个排序吗
Oracle日期类型处理学习笔记,个人学习总结。
边看李兴华视频边记的,适合初学者去看,毕竟看文本比看视频要快吧。 表的全称是 用户名.表名,访问当前用户下的表时用户名可省略,访问其他用户下的表就要加上。... ----为特定字段设置宽度,A代表宽度
当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束 如: select id from s_emp; select last_name,name ...
从最基础的oracle的crud操作,oracle 基础, 包括SQLPLUS下的常用命令,ORACLE中字段的数据类型,建表,建约束,常用函数介绍,创建表空间、存储过程、触发器、游标使用等。
一、 常见问题记录 3 ... 2. 数据库重启 5 ...6. 查看索引类别以及查看索引字段被引用的字段方法 141 二十、 SQL优化: 141 1. sql查询语句优化 141 2. 提高SQL查询效率 143 3. 百万级数据库优化方案 149
做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a...