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 语句表的后面 。 支持如下运算符:# ------------------------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%';