条件查询
条件查询的语法格式
select 字段1,字段2...
from 表名
where 条件;
运算符
-
= 等于
查询薪资为800的员工的信息
select * from emp where sal=800;
查询名字为king的员工的信息
select * from emp where ename=king;//报错,因为名字为字符型,需要用''括起来 select * from emp where ename='king';
-
<>或!= 不等于
查询薪资不是为800的员工的信息
select * from emp where sal<>800;
-
< 小于
查询薪资小于3000 的员工的信息
select * from emp where sal<3000;
注意:也可以用于字符型的
-
<= 小于等于
-
<= 大于等于
-
between …and …. 两个值之间,等同于 >= and <=
查询薪资2000~3000员工的信息
select * from emp where sal between 2000 and 3000;
注意,between and必须遵循左小右大(可以等于)
-
is null 为 null(is not null 不为空)
null不能用=来比较,因为null在数据库中代表什么也没有,不是一个值。
查询没有津贴的员工的姓名
select ename from emp where comm is null;
-
and 并且
-
or 或者
-
in 包含,相当于多个 or(not in 不在这个范围中)
注意:in后面跟的是一个具体的值,而不是一个区间
查询职位为salesman 和clerk的员工的信息
select * from emp where job in ('salesman','clerk');
-
not 取非,主要用在 is 或 in 中
-
like
like 称为模糊查询,支持%或下划线匹配
%匹配任意个字符 下划线
一个下划线只匹配一个字符
找出名字中含有a的?
select ename from emp where ename like '%a%';
找出名字以T结尾的?
select ename from emp where ename like '%T';
找出名字以K开始的?
select ename from emp where ename like 'K%';
找出第二个字每是A的?
select ename from emp where ename like '_A%';
找出第三个字母是R的?
select ename from emp where ename like '__R%';
注意:当查询的内容中含有%或_,不能之间输入%或_ 需要在前面加转义字符‘\’
排序查询
asc是升序(默认),besc是降序
查询员工的姓名及薪资,并按薪资的升序输出
select ename,sal from emp order by sal;
查询员工的姓名及薪资,并按薪资的降序输出
select ename,sal from emp order by sal desc;
查询薪资在1250 ~3000之间的员工的姓名,薪资并按升序输出
select ename,sal from emp where sal between 1250 and 3000 order by sal asc;
注意:关键字的顺序不能变:select…from…where…order by…
执行的顺序是:1,from 2,where 3,select 4,order by(排序总在最后执行)
按多个字段来排序
查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照名字升序排列。
select ename,sal
from emp
order by sal asc,ename asc; \\sal 在前,起主导地位,只有sal相等的时候,才会进行ename排序