Oracle之SQL限定查询

WHERE限定条件

/*
语法结构:
SELECT * | 列名1[,列名2...] | 表达式
FROM 表名 WHERE 限定条件;
*/
--查询职位为CLERK的员工信息 SELECT * FROM EMP WHERE JOB = 'CLERK'; --查询薪资大于800小于2500的员工信息 SELECT * FROM EMP WHERE SAL > 800 AND SAL < 2500;

 

关系运算符 < \ > \ = \ >= \ <= \ != \ <>

/*
常见的关系运算有:
运算符        说明        
   =           等于        
<>或者!=      不等于         
  <           小于         
 >            大于
 <=           小于或者等于
 >=           大于或者等于
*/

--查询职位等于CLERK的员工信息
SELECT *
FROM EMP E
WHERE E.JOB = 'CLERK';

 

逻辑运算符  AND 且 、 OR 或、NOT 非
--查询部门编号为30或者职位为SALESMAN的员工信息
SELECT *
FROM EMP E
WHERE E.DEPTNO = 30 OR E.JOB = 'SALESMAN';

--查询不是30号部门的员工信息
SELECT *
FROM EMP E
WHERE NOT E.DEPTNO = 30;

范围运算符 BETWEEN ... AND...
--查询薪资在[800,2500]之间的员工信息
--方法一:
SELECT *
FROM EMP E
WHERE E.SAL >= 800 AND E.SAL <= 2500;

--方法二:
SELECT *
FROM EMP E
WHERE E.SAL BETWEEN 800 AND 2500;

空判断 IS NULL/ IS NOT NULL
--查询员工上级为空的员工信息
SELECT *
FROM EMP E
WHERE E.MGR IS NULL;

--查询奖金不为空的员工信息
SELECT *
FROM EMP E
WHERE E.COMM IS NOT NULL;

-- 注意:NULL 与任何值进行运算时,结果都为 NULL
SELECT E.SAL 月薪,E.SAL * 12 年薪,E.COMM 奖金,NVL(E.COMM,0),E.SAL * 12 + NVL(E.COMM,0) 年收入
FROM EMP E;

--注意:NULL参与排序时,永远是最大的  
SELECT *
FROM EMP E
ORDER BY E.COMM DESC;

IN判断:用于在指定的范围内进行数据的查询。 IN / NOT IN
--查询10、20、30号部门的员工信息
SELECT *
FROM EMP E
WHERE E.DEPTNO IN (10,30,20);

--查询不在10、30号内的员工信息
SELECT *
FROM EMP E
WHERE E.DEPTNO NOT IN (10,30);

模糊查询: LIKE / NOT LIKE
--'%':通配符,代表任意0、1或者多个字符;
--'_':占位符,代表1个字符。

--查询EMP表中员工姓名首字母为'A'的员工信息
SELECT *
FROM EMP E
WHERE E.ENAME LIKE 'A%';
 
--查询EMP表中员工姓名第二字母为'A'的员工信息
SELECT *
FROM EMP E
WHERE E.ENAME LIKE '_A%';
 
--查询EMP表中员工姓名最后一位字母为'S'的员工信息
SELECT *
FROM EMP E
WHERE E.ENAME LIKE '%S';
posted @ 2020-10-04 22:56  小碗吃不胖的  阅读(278)  评论(0编辑  收藏  举报