《oracle》oracle添加唯一约束,多个字段唯一

唯一约束

保证USER_ID, JOB_ID, ISDEFAULT_JOB三个字段唯一

ALTER TABLE AAF_USER_JOB
ADD CONSTRAINT unique_user_job_isdefault
UNIQUE (USER_ID,JOB_ID,ISDEFAULT_JOB);

创建索引:

 单一索引:Create Index <Index-Name> On <Table_Name>(Column_Name);

 复合索引: Create Index i_deptno_job on emp(deptno,job); —>在emp表的deptno、job列建立索引。

  select * from emp where deptno=66 and job=sals ->走索引。

  select * from emp where deptno=66 OR job=sals ->将进行全表扫描。不走索引

  select * from emp where deptno=66 ->走索引。

  select * from emp where job=sals ->进行全表扫描、不走索引。

  如果在where 子句中有OR 操作符或单独引用Job 列(索引列的后面列) 则将不会走索引,将会进行全表扫描。

sql优化

1、先执行From ->Where ->Group By->Order By

2、执行From 字句是从右往左进行执行。因此必须选择 记录条数最少的表 放在右边。

3、对于Where字句其执行顺序是从后向前执行、因此可以过滤最大数量记录的条件必须写在Where子句的末尾,

而对于多表之间的连接,则写在之前。因为这样进行连接时,可以去掉大多不重复的项。  

经验分享 程序员 微信小程序 职场和发展