`
依山傍水
  • 浏览: 53229 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

学习oracle笔记:表与字段(四)

 
阅读更多

前言:约束分为两种,一种是列约束,一种是表约束。列约束是指定义在一个列上的约束,表约束指定义在两个或多个列上的约束。

 

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 多表查询与数据修改

    oracle 多表查询与数据修改学习笔记,主要是让大家熟悉三个或四个表的连接查询,熟练掌握delete、update与insert的语法。

    oracle 学习 笔记 实用

    oracle 日常学习的记录…… java调用oracle的存储过程 oracle number(1)一般对应于Java中的类型 Oracle常用函数 oracle触发器new Oracle中自增字段的两种方法 字典表查询

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle学习笔记

    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数据库学习笔记(来自韩顺平 Oralce视频教程) 个人总结的Oracle数据库学习笔记,不是很全,但是也包括了大致的内容。我把笔记转化为PDF,方便阅读。附上一些内容和下载链接。 ORACLE学习笔记... 2 一、 ...

    MySQL学习笔记、学习文档

    Oracle查看表结构.txt SQL作业代理禁用.txt sql.txt SQL-Transaction事物一起执行.txt sq和oracle的区别.txt sysobjects中type字段值意思txt W3School例句.txt 按照中文首字母排序.txt 笔记.txt 查询字段是否有...

    oracle全程笔记及代码

    参照完整性,是指一个表中的字段的值要参照另一个表中字段的值(主键字段的值),那么在该表中该字段称为外键,即通过外键来实现 参照完整性。主键所在的表称为主键表,主键表要优先创建,再创建外键表。

    oracle精华笔记

    oracle精华文档,内容详实, SQL(结构化查询语言) Select 字段(*) from 表名 where ...group by ...having ...order by DDL(数据定义语言) Create table 表名 Drop table 表名 Alter table 表名 add 列名 数据...

    视频教程读书笔记之oracle从入门到精通

    纯手写笔记 SELECT [DISTINCT] * | 列 [别名] FROM 表名称 1 [CROSS JOIN 表名称2] [NATURAL JOIN 表名称2] [JOIN 表名称 ON(条件)|USING(字段)] [LEFT | RIGHT | FULL OUTER JOIN 表名称2]; 1. 交叉连接:...

    oracle数据库笔记

    本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 第一讲 Oacle关系数据库 9 一....

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    Oracle字段上建立并使用索引 29 用Windows脚本宿主自动化Oracle工具 31 进程结构和内存结构 32 Oracle监控数据库性能的SQL汇总 36 Oracle如何精确计算row的大小 38 PL/SQL编程 39 数据库的分组问题 41 oracle知识 42...

    oracle学习笔记(三)

    1、创建表语法 create table 表名(column datatype [default expr][,column …]) default 约束 说明略 2、利用子查询创建表 create table 表名 as select * from u表 二、修改表 1、添加一个新列 oracle:alter ...

    oracle plsql课堂笔记

    oracle plsql课堂笔记,记录常用的SQL语句和字段解释,都是从培训中慢慢积累的,希望对大家有用。

    oracle优化笔记

    接下来进行 SQL2 的调优,和优化 SQL1 时一样首先开始查看分析 SQL2 语句的执行 计划,发现 SQL2 的执行计划也是全表扫描,这里 t1.name=的... 排序是 T1 表的 col5 字段,展现字段又没有这个字 段,真的需要这个排序吗

    Oracle日期类型处理

    Oracle日期类型处理学习笔记,个人学习总结。

    2018教程读书笔记之oracle从入门到精通

    边看李兴华视频边记的,适合初学者去看,毕竟看文本比看视频要快吧。  表的全称是 用户名.表名,访问当前用户下的表时用户名可省略,访问其他用户下的表就要加上。... ----为特定字段设置宽度,A代表宽度

    2009达内SQL学习笔记

    当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束 如: select id from s_emp; select last_name,name ...

    oracle培训18天笔记

    从最基础的oracle的crud操作,oracle 基础, 包括SQLPLUS下的常用命令,ORACLE中字段的数据类型,建表,建约束,常用函数介绍,创建表空间、存储过程、触发器、游标使用等。

    jf_Oracle_经典笔记.docx

    一、 常见问题记录 3 ... 2. 数据库重启 5 ...6. 查看索引类别以及查看索引字段被引用的字段方法 141 二十、 SQL优化: 141 1. sql查询语句优化 141 2. 提高SQL查询效率 143 3. 百万级数据库优化方案 149

    oracle获取当前用户表、字段等详细信息SQL

    做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a...

Global site tag (gtag.js) - Google Analytics