《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子句的末尾,
而对于多表之间的连接,则写在之前。因为这样进行连接时,可以去掉大多不重复的项。