Oracle约束、索引
Oracle中的约束有五种,分别为:
非空:not null
主键:primary key
外键:foreign key
唯一:unique
检查:check
在数据字典视图 user_constraint,里面显示当前用户所有的约束信息
①主键和外键
用于定义主表和从表之间的关系,外键是定义在从表上,主表则必须具有主键或者unique约束,当定义外键约束后,要求外键列的数据必须在
主表的主键列存在或者为NULL
主键和外键的数据类型一致
在删除主键约束的时候,要注意:
因为如果两张表存在主从关系,那么在删除主表的主键约束时,必须带上cascade选项
alter table 表名 drop primary key cascade
这样表示把两个表之间的主从关系破坏掉
②非空
oracle中的空包括 null和' ' ;与sqlserver有所区别。在sqlserver中null和' '是不一样的。
所以:在Oracle中只要某一列定义为 NOT NULL ,那么 null和 '' 都插入不进去;但是SqlServer某一列定义为 NOT NULL, 那么null插入不进去,' ' 可以插入进去。
语法:
alter table employees modify deptno not null/null
注意:如果表中已经存在null,就不能更改其为not null约束
③索引
单列索引
create index 索引名 on 表名(列名)
create index ghindex on emp(empid)
复合索引
create index emp_index1 on emp(ename,job)
创建主键或唯一约束后,ORACLE会自动创建一个与约束同名的索引。
例如:
create table stu(
name varchar2(20) primary key ,
age int unique,
home varchar2(20) not null
);
里面就会有两个索引:name 和 age上分别都有索引
Oracle约束、索引的更多相关文章
- Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- oracle唯一索引与普通索引的区别和联系以及using index用法
oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...
- oracle 创建索引思考(转)
在Oracle数据库中,创建索引虽然比较简单.但是要合理的创建索引则比较困难了. 笔者认为,在创建索引时要做到三个适当,即在适当的表上.适当的列上创建适当数量的索引.虽然这可以通过一句话来概括优化的索 ...
- ORACLE约束总结
你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本 ...
- oracle 常用索引分析,使用原则和注意事项
本文参考: https://www.cnblogs.com/wishyouhappy/p/3681771.html https://blog.csdn.net/weivi001/article/det ...
- 【Oracle】Oracle约束的总结
你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本 ...
- 01 Oracle分区索引
Oracle分区索引 索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...
- oracle约束约束状态和设计习惯
oracle约束状态有几个项目,会让人迷惑,分别是: enable/disable--是否启用/禁用 validate/invalidate--确认/不确认 deferrable/not deferr ...
- 转 ORACLE约束总结
https://www.cnblogs.com/kerrycode/archive/2012/05/13/2454614.html 你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几 ...
随机推荐
- PAT-B-1020 月饼 (25)(25 分)
题目描述: 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一 ...
- HttpClient基本使用
1.在pom.xml加入对httpclient的必需的jar包的依赖 <!--//httpclient的接口基本都在这儿--> <dependency> <groupId ...
- Mybatis操作oracle数据库的一些坑
oracle区分大小写,如果不想区分,必须要用引号包住 使用mybatis的generator生成的时候,建议使用全大写表,中间用下划线隔开,会生成驼峰字段 oracle没有空字符串的概念 写myba ...
- .call() 与 .apply() 的用法及区别
首先说明两个方法的含义: apply:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法.call:调用一个对象的一个方法,用 ...
- grep、awk、sed的巩固练习
作者:邓聪聪 提取日志或文本中的关键内容 Apr :: localhost NetworkManager[]: <info> (eno16777736): Activation: star ...
- MySQL之CONCAT()的用法
mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT()函数,供您参考 mysql CONCAT(str1,st ...
- SecureCRT标签显示IP地址
当使用SecureCRT连接到linux服务器后,SecureCRT的标签会随着操作目录的改变而改变,当连接多个的时候很不好区分,所以需要设置标签栏固定显示IP地址信息. options->Se ...
- 经验分享:PDF怎么提取页面
PDF文件的页面有很多但有需要的并不是全部,有时候需要其中一页或几页的时候,这个时候我们就需要把单独的页面提取出来,这个时候应该怎么做呢,上次有小伙伴来询问小编,今天小编就为大家分享一下小编自己的编辑 ...
- linux线程 join/detach
linux中创建线程时,可以通过 __attr 指定线程的属性 extern int pthread_create (pthread_t *__thread, __const pthread_attr ...
- 设计模式 — 简单工厂模式(staticFactory)
这篇博文介绍简单工厂模式,设计模式并不是固定的二十三种,不同的书介绍的可能有出入,这篇介绍的简单工厂模式在有些书上就忽略不介绍了.设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验 ...