005、条件查询(where)、模糊查询(like)

 

 

1、简单的查询

# 查询一个字段。 查询员工的名字
select ename from emp;

# 查询多个字段,用 , 分隔开。 查询员工的编号和姓名。
select empno, ename from emp;

# 查询全部字段。
select * from emp;

# 列出员工的编号,姓名和年薪。
# 用 as 将查询的结果字段重命名, 也可以将as省略 。
select empno, ename, (sal*12) as '年薪' from emp;
select empno, ename, (sal*12) '年薪' from emp;

 

2、条件查询 (where)

条件查询需要用到 where 语句,where 必须放到 from 语句表的后面 。 支持如下运算符: 005、条件查询(where)、模糊查询(like)
# ------------------------5、条件查询-------------------
# 查询薪水为 5000 的员工
select empno, ename, sal from emp where sal=5000;

# 查询 job 为 MANAGER 的员工
select empno, ename, job, sal from emp where job='MANAGER';

# 查询薪水不等于 5000 的员工
select empno, ename, sal from emp where sal != 5000;

# 查询工作岗位不等于 MANAGER 的员工
select empno, ename, job, sal from emp where job != 'MANAGER';

# 查询薪水为 1600 到 3000 的员工
select empno, ename, sal from emp where sal between 1600 and 3000;

# 查询津贴为空的员工。因为 null 类型比较特殊,必须使用 is 来比较。
select * from emp where comm is null;

# 工作岗位为 MANAGER,薪水大于 2500 的员工。
select empno, ename, job, sal from emp where job='MANAGER' and sal>2500;

# 查询出 job 为 manager 或者 job 为 salesman 的员工。
select empno,ename,job from emp where job='MANAGER' or job='SALESMAN';

# 查询薪水大于 1800,并且部门代码为 20 或 30 的员工。
select empno,ename,deptno,sal from emp where sal>1800 and (deptno=20 or deptno=30);

# 查询出 job 为 manager 或者 job 为 salesman 的员工
select * from emp where job in ('MANAGER','SALESMAN');
select * from emp where job='MANAGER' or job='SALESMAN';

# 查询出薪水包含 1600 和薪水包含 3000 的员工
select * from emp where sal in (1600,3000);

# 查询出薪水不包含 1600 和薪水不包含 3000 的员工
select * from emp where sal not in (1600,3000);
select * from emp where not (sal = 1600 or sal = 3000);

# 查询出津贴不为 null 的所有员工
select * from emp where comm is not null;

 

3、模糊查询

# -----------------------------模糊查询-----------------------
# Like 中%和下划线的差别?
# % 匹配任意字符出现的个数
#  _  下划线只匹配一个字符
# Like 中的表达式必须放到单引号中 或 双引号中


# 查询姓名以 M 开头所有的员工
select * from emp where ename like 'M%';

# 查询姓名以 N 结尾的所有的员工
select * from emp where ename like '%N';

# 查询姓名中包含 O 的所有的员工
select * from emp where ename like '%o%';

# 查询姓名中第二个字符为 A 的所有员工
select * from emp where ename like '_A%';

 

上一篇:MySQL学习笔记(二)


下一篇:表合并查询