oracle索引 约束简单总结
[code]

什么时候应该建立索引?

1. 表很大而且大多数查询的返回数据量很少(oracle推荐<总行数的2%——3%)
2. 此列的取值范围很广,一般为随机分布。如年龄几乎18岁到60岁的都有
3. 一列或多列经常出现where子句或连接条件中
4. 表上的DML操作较少
5. 此列中包含大量的空值(NULL)
6. 此列不经常作为SELECT语句中某个表达式的一部分。基于函数的索引



建了索引人家不一定用你的噢,如何确认伟大的oracle系统是否用了你的索引?

1. explain plan for select * from emp where ename like ‘J%’; //解释
2. select id,operation,options,object_name,position from plan_table; //查看是否使用了索引



为什么引入约束?

1. 当对表进行DML或DDL操作时,强加到表上的规则&条件

约束有些撒东西?

1. (NN)非空——NOT NULL
2. (UK)唯一——UNIQUE——在表中每一行中所定义的这列或这些列的值都不能相同
3. (PK)主键——PRIMARY KEY——唯一标识表中的每一行
4. (FK)外键——FOREIGN KEY——维护主表与从表之间引用完整性
5. (CK)条件——CHECK——表中每行都要满足约束条件
[/code]