1、 限制查询
 就是根据一些特定的条件,查找指定的内容。
查出所有在10部门工作的雇员
 只要是部门编号为“10”就表示合法记录。
  SELECT * FROM emp WHERE deptno=10 ;
 
 
例如:要查询所有工资大于1000的全部员工信息
 SELECT * FROM emp WHERE sal>1000 ;
 要查询所有奖金大于等于300的全部雇员信息:
 SELECT * FROM emp WHERE comm>=300 ;
不等于:!=、<>
 例如:要查询雇员姓名不是SMITH的全部雇员。(除SMITH之外的全部雇员信息)
  SELECT * FROM emp WHERE ename!='smith' ;
 以上代码查询时出现了SMITH,因为oracle中的全部数据都是要区分大小写的。
  SELECT * FROM emp WHERE ename!='SMITH' ;
  SELECT * FROM emp WHERE ename<>'SMITH' ;
BETWEEN…AND…:范围查询
 例如:要查询雇员工资在1000~2000的全部雇员信息。
 SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000 ;
IN操作符(给定查询范围)
 现在已经知道了三个雇员编号:7369、7876、7902,要求可以根据这雇员编号查询出全部的雇员信息。
 Empno的取值只能是(7369、7876、7902)
 SELECT * FROM emp WHERE empno IN (7369,7876,7902) ;
LIKE运算:模糊查询:
 给定一个关键字,之后可以根据此关键字查询出全部的内容:
 查询,雇员姓名中包含“S”的人员信息。
 SELECT * FROM emp WHERE ename LIKE '%S%';
 假设:要查询以字母“S”开头的全部的雇员信息
  SELECT * FROM emp WHERE ename LIKE 'S%';
 当然,也可以对查询进行指定位数的匹配:
  姓名中的第二个字母为“A”的全部雇员信息:
   SELECT * FROM emp WHERE ename LIKE '_A%';
 • %:表示匹配任意的字符
 • _:表示只匹配一个字符
IS NULL与IS NOT NULL:判断是否为空
例如:查询全部佣金为null的雇员信息:
  SELECT * FROM emp WHERE comm IS NULL;
 查询佣金不为null的雇员信息:
  SELECT * FROM emp WHERE comm IS NOT NULL;
查询:雇佣日期是1981年的全部雇员信息
 • 使用LIKE查询:
  SELECT * FROM emp WHERE hiredate LIKE '%81%';
 • 使用BETWEEN…AND进行查询:
  SELECT * FROM emp WHERE hiredate BETWEEN '1-1月 -1981' AND '31-12月 -1981';
 • 以后只要是碰见日期都可以用字符串表示(加入了“'”)
 
表示可以连接多个条件:
 • AND(与):如果两个条件都为真,则表示满足条件,之外都不满足。
 • OR(或):如果两个条件中有一个条件为真,则表示满足,之外都不满足。
 • NOT(非):可以把为真的条件变为假。
例如:查询雇员编号为7369,且职务为办事员的全部雇员信息:
 SELECT * FROM emp WHERE empno=7369 AND job='CLERK';
例如:查询在10部门工作或者职务为办事员的全部雇员信息:
 SELECT * FROM emp WHERE deptno=10 OR job='CLERK';
例如:查询所有佣金比工资高的全部雇员信息,且不是在10部门工作的人员
 SELECT * FROM emp WHERE comm>sal AND deptno<>10;
例如:查询不在10部门工作的全部雇员
 SELECT * FROM emp WHERE NOT deptno=10;
例如:查询工作即不是办事员又不是经理的全部雇员信息
 • SELECT * FROM emp WHERE job<>'CLERK' AND job<>'MANAGER';
 • 如果给定了范围使用IN操作最合适:
  |- SELECT * FROM emp WHERE job NOT IN ('CLERK','MANAGER');
查询:工作是销售人员或总裁且工资大于1200的全部雇员信息
 SELECT * FROM emp WHERE job IN ('PRESIDENT','SALESMAN') AND sal>1200;
 
可以为查出的数据进行排序:默认的排序为升序
例如:可以按工资由高到低进行排序
 SELECT * FROM emp ORDER BY sal desc;
可以同时对多个字段进行排序:
 例如:按工资由高到低排序,如果工资相等,则按照受雇日期由早到近排序。
 SELECT * FROM emp ORDER BY sal desc,hiredate;
也可以使用列的别名进行排序:
 SELECT empno,sal s,ename,hiredate h FROM emp ORDER BY s desc,h;
排序语句从语法上来看,必须写在WHERE语句之后
 查询,10部门中的全部雇员信息,之后按工资由高到低排序。
 SELECT * FROM emp WHERE deptno=10 ORDER BY sal desc ;