范围查询
- BETWEEN…AND
查询在 BETWEEN 开始值 AND 结束值 之间的所有结果
--查询工资在1100和2000之间的所有员工的信息
SELECT *
FROM EMP
WHERE SAL BETWEEN 1100 AND 2000;
BETWEEN AND 过滤的值,必须是先小后大
--查询工资不在 1500 到 2999 之间的所有员工
SELECT *
FROM EMP
WHERE SAL NOT BETWEEN 1500 AND 2999;
- IN () 查询指定范围内的值
--查询部门10 和部门30中的所有员工
SELECT *
FROM EMP
WHERE DEPTNO IN (10,30);
--查询不在部门10和20中的剩余员工
SELECT *
FROM EMP
WHERE DEPTNO NOT IN (10,30);
- ANY() 取范围内的任意值,或
--查询部门10和部门30中任意部门的所有员工
SELECT *
FROM EMP
WHERE DEPTNO = ANY (10 ,30 ) ;
模糊查询,模糊匹配
- LIKE
--查询名字中第一个字母是A的所有员工的信息
SELECT *
FROM EMP
WHERE ENAME LIKE'A%';
%是统配符,可以匹配任意长度的字符
--查询出员工的姓名以N结尾的所有员工
SELECT *
FROM EMP
WHERE ENAME LIKE'%N';
--查询出名字中包含 A 的员工
SELECT *
FROM EMP
WHERE ENAME LIKE'%A%';
-- 查询名字是4个字的员工
SELECT *
FROM EMP
WHERE ENAME LIKE'____'; -- 4个下划线
" - " 下划线表示1个字符
-- 查询名字是4个字,并且第二个字是O的员工
SELECT *
FROM EMP
WHERE ENAME LIKE'_O__';
-- 查出名字是5个字,并且在名字中包含字母A的员工
SELECT *
FROM EMP
WHERE ENAME LIKE'_____'
AND ENAME LIKE'%A%';
去重
DISTINCT
对查询结果去重,但是不会改变表中数据
--查询所有的部门编号
SELECT DISTINCT DEPTNO
FROM EMP;
字符串拼接符 ||
SELECT ENAME || '的工资是:' || TO_CHAR(SAL)
-- SAL 是number类型的,拼接的时候 数据库会对该字段进行 隐式转换
FROM EMP ;