SQL索引命令

限定搜索
语句加限定条件 where,在from语句后面
布尔值:在进行条件判断时候,结果是ture或false,这样的数值称为布尔值。
语句执行顺序
1、执行from语句,确定要检索的数据来源
2、执行where语句,使用限定符对数据进行过滤
3、执行select语句,确定检索的数据列。
例:select * from emp where sal>1500;
与AND:连接多个条件,多个条件同时满足
或OR:满足一个即可
非NOT:取否
优先级:NOT>AND>OR
select from emp where () or ()
SELECT * FROM emp where (deptno=10 and job=‘MANAGER’)or(deptno=20 and job=‘CLERK’);
关系运算符
一般运用到where语句后面,!=和<>为不等于,<,>,>=,<=,=。
SELECT * from emp where job!=‘CLICK’;
SELECT
from emp where sal>=1500 and sal<=3000;
select *from emp where sal between 1500 and 3000;
select *from emp where job=‘SALESMAN’ and sal>3000;
默认字符集
格式 日期 中文
select *from emp where hiredate between date ‘1981-01-01’ and date’1981-12-31’;
隐式转换 日期-字符 容易出错
select *from emp where HIREDATE between ‘01-JAN-81’ and ‘31-DEC-81’;

in ,not in:
select *from emp where comm is null or comm<100;
select *from emp where empno in (7369,7788,7962);
select *from emp where empno not in (7369,7788,7962);
select *from emp where empno not in (7369,7788,7962,null);not in 后不能出现null值。
in相当于all

模糊查询 (like、not like):
通配符百分号 % : 可以匹配任意类型和长度的字符
下划线 _ :只能匹配单一字符查询
select *from emp where ename like ‘S%’;
select *from emp where ename like ‘M%’;
select *from emp where ename like '
_____%’;字符串大于5
SELECT * FROM emp where
((deptno=10 and job=‘MANAGER’)
or(deptno=20 and job=‘CLERK’)
or (job not in (‘MANAGER’,‘CLERK’)
and sal>2000))
and ( ename like ‘%S%’ or ename like ‘%K%’);
排序 order by
select *from where order by 排序字段 asc/desc 升序、降序;asc可不写
例 select *from emp order by sal desc;
复合查询
select *from emp order by sal desc;降序排列
select *from emp order by sal desc,hiredate asc;,先按照工资降序,若相同按照雇佣时间升序排列
索引失败原因:隐式转换,模糊查询,函数
全表扫描,索引扫描

猜你喜欢

转载自blog.csdn.net/weixin_43274226/article/details/83052082