1.约束
约束用于确保数据库数据满足特定的商业规则。在oracle中约束包括:not null,unique,primary key,foreign key和check五种。
2.五种约束
- not null(非空):如果在列上定义了not null,那么当插入数据时,必须为列提供数据
- unique(唯一):当定义了唯一约束后,该列值是不能重复的,但是可以为null
- primary key(主键):用于唯一的标示表行的数据,当定义主键约束后,该列不但不可以重复而且不能为null,一个表只能有一个主键,但可以有多个unique约束
- foreign key(外键):用于定义主表和从表的关系,外键约束要定义在从表上,朱彪需要具有主键约束或者unique约束。
- check:用于强制数据必须满足的条件
3.序列
在oracle中,通过使用序列(sequence)来处理自动增长列
- 可以为表中的列自动产生值
- 有用户创建数据库对象,并可以由多个用户共享
- 一般用于主键或唯一列
4.两个值
currval:返回sequence的当前值(需要先执行nextval初始化才会有值)
nextval:返回sequence的值,然后返回sequence值
5.基本语法
• CREATE SEQUENCE sequence //创建序列名称
• [INCREMENTBY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
• [START WITHn] //开始的值,递增默认是minvalue 递减是maxvalue
• [{MAXVALUEn | NOMAXVALUE}] //最大值
• [{MINVALUEn | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
• [{CACHE n |NOCACHE}];//分配并存入到内存中
6.索引介绍
索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o次数,从未提高数据访问性能
7.创建索引
1.单列索引:单列索引是基于单个列所建立的索引
create index index_name
on table(columnname);
2.复合索引:复合索引是基于两列或是多列的索引,在同一张表中可以有多个索引,但是要求列的组合必须不同
create index index_name
on table(columnname,columnname…);
8.索引使用原则
- 在大表上建立索引才有意义
- 在where子句或是连接条件上经常引用的列上建立索引
- 索引的层次不要超过4层