iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle 学习之 SQL(二) Restricting and Sorting Data
  • 815
分享到

Oracle 学习之 SQL(二) Restricting and Sorting Data

2024-04-02 19:04:59 815人浏览 独家记忆
摘要

限制SELECT语句的返回行语法:使用WHERE关键字来限制数据行的返回,WHERE子句跟在FROM子句的后面。sql> select *&nbs

限制SELECT语句的返回行

语法:

Oracle 学习之 SQL(二)  Restricting and Sorting Data使用WHERE关键字来限制数据行的返回,WHERE子句跟在FROM子句的后面。

sql> select * from emp where deptno=10;
     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7782 CLARK      MANAGER	      7839 1981/06/09 00:00:00	     2450		     10
      7839 KING       PRESIDENT 	   1981/11/17 00:00:00	     5000		     10
      7934 MILLER     CLERK	      7782 1982/01/23 00:00:00	     1300		     10

当WHERE后面的表达式为true时,则返回行,否则跳过改行。

SQL> select * from emp where ename='KING';

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7839 KING       PRESIDENT 	   1981/11/17 00:00:00	     5000		     10

字符串是大小写敏感的

SQL> select * from emp where ename='king';

no rows selected

条件表达式支持的比较操作符有如下

Oracle 学习之 SQL(二)  Restricting and Sorting Data

SQL> select * from emp where sal<2000;

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 1980/12/17 00:00:00	      800		     20
      7499 ALLEN      SALESMAN	      7698 1981/02/20 00:00:00	     1600	 300	     30
      7521 WARD       SALESMAN	      7698 1981/02/22 00:00:00	     1250	 500	     30
      7654 MARTIN     SALESMAN	      7698 1981/09/28 00:00:00	     1250	1400	     30
      7844 TURNER     SALESMAN	      7698 1981/09/08 00:00:00	     1500	   0	     30
      7876 ADAMS      CLERK	      7788 1987/05/23 00:00:00	     1100		     20
      7900 JAMES      CLERK	      7698 1981/12/03 00:00:00	      950		     30
      7934 MILLER     CLERK	      7782 1982/01/23 00:00:00	     1300		     10

BETWEEN AND  只要值在这个范围内,就返回值

SQL> select * from emp where sal between 1500 and 2000;

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN	      7698 1981/02/20 00:00:00	     1600	 300	     30
      7844 TURNER     SALESMAN	      7698 1981/09/08 00:00:00	     1500	   0	     30

IN 只要列的值出现在列表中即返回行

SQL> SELECT * FROM EMP WHERE ENAME IN ('SMITH','KING');


     EMPNO ENAME      JOB       MGR HIREDATE      SAL COMM DEPTNO

---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------

      7369 SMITH      CLERK      7902 1980/12/17 00:00:00      800     20

      7839 KING       PRESIDENT   1981/11/17 00:00:00     5000     10

LIKE 模糊查询

查询所有姓名以S开头的人

SQL> select * from emp where ename like 'S%';

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 1980/12/17 00:00:00	      800		     20
      7788 SCOTT      ANALYST	      7566 1987/04/19 00:00:00	     3000		     20

%  通配符,表示0或多个任意字符

查询所有姓名包含S的人

SQL> select * from emp where ename like '%S%';

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 1980/12/17 00:00:00	      800		     20
      7566 JONES      MANAGER	      7839 1981/04/02 00:00:00	     2975		     20
      7788 SCOTT      ANALYST	      7566 1987/04/19 00:00:00	     3000		     20
      7876 ADAMS      CLERK	      7788 1987/05/23 00:00:00	     1100		     20
      7900 JAMES      CLERK	      7698 1981/12/03 00:00:00	      950		     30

_ 通配符表示任意一个字符

查询名字的第二个字符为O的人

SQL> select * from emp where ename like '_O%';

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7566 JONES      MANAGER	      7839 1981/04/02 00:00:00	     2975		     20
      7902 FORD       ANALYST	      7566 1981/12/03 00:00:00	     3000		     20

如果列的值本身就包含%或_字符呢? 用escape关键字转义。

查询名字中含有_的人

SQL> select * from emp where ename like '%\_%' escape '\';

no rows selected

过滤NULL值

过滤NULL值不能使用= <>来查询,null有一个专有的判断条件 IS NULL

SQL> SELECT * FROM EMP WHERE COMM IS NULL;

     EMPNO ENAME      JOB	       MGR HIREDATE		      SAL	COMM	 DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 1980/12/17 00:00:00	      800		     20
      7566 JONES      MANAGER	      7839 1981/04/02 00:00:00	     2975		     20
      7698 BLAKE      MANAGER	      7839 1981/05/01 00:00:00	     2850		     30
      7782 CLARK      MANAGER	      7839 1981/06/09 00:00:00	     2450		     10
      7788 SCOTT      ANALYST	      7566 1987/04/19 00:00:00	     3000		     20
      7839 KING       PRESIDENT 	   1981/11/17 00:00:00	     5000		     10
      7876 ADAMS      CLERK	      7788 1987/05/23 00:00:00	     1100		     20
      7900 JAMES      CLERK	      7698 1981/12/03 00:00:00	      950		     30
      7902 FORD       ANALYST	      7566 1981/12/03 00:00:00	     3000		     20
      7934 MILLER     CLERK	      7782 1982/01/23 00:00:00	     1300		     10


您可能感兴趣的文档:

--结束END--

本文标题: Oracle 学习之 SQL(二) Restricting and Sorting Data

本文链接: https://www.lsjlt.com/news/40860.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中year是集函数吗
    否,year 不是 sql 中的聚合函数。year 函数是一个日期函数,用于从给定的日期值中提取年份。它是一个标量函数,返回单个值,而不是值的集合。相反,聚合函数对一组值进行操作并生成一...
    99+
    2024-05-15
    聚合函数
  • sql中between的用法
    sql 中 between 运算符用于检查值是否在指定范围之内,其语法为:select column_name from table_name where colum...
    99+
    2024-05-15
  • sql中update用法
    sql 中的 update 语句用于更新表中的现有数据,通过指定要更新的表、列、值和可选的更新条件来实现,可更新特定行或组行的特定列值。 SQL 中的 UPDATE 语句 什么是 UP...
    99+
    2024-05-15
  • sql中for循环的用法
    sql 中 for 循环可用于遍历结果集,逐行执行操作。语法:for var_name in (select_statement) [loop_statement] end f...
    99+
    2024-05-15
  • sql中any和all的区别
    sql 中 any 和 all 运算符的区别在于:any 检查子查询中是否存在满足条件的行,返回 true 或 false。all 检查子查询中所有行是否都满足条件,返回 true 或 ...
    99+
    2024-05-15
  • sql中exists具体用法
    exists 子查询用于检查外层查询中的行是否存在匹配记录,用法如下:包含在 select 语句的 where 子句中。返回布尔值 true (存在匹配) 或 fal...
    99+
    2024-05-15
  • sql中union用法
    union 运算符在 sql 中用来合并相同结构的表或子查询的结果集,排除重复行。它具有以下用法:合并具有相同列名和数据类型的多个表或子查询的结果集合并为一个。排除结果集中重复...
    99+
    2024-05-15
  • sql中索引的用法
    sql 中索引是一种通过创建数据指针来提高查询性能的技术,主要用于where、order by、join和group by子句。索引类型包括聚集索引、非聚集索引、主键索引、唯一...
    99+
    2024-05-15
    聚合函数
  • sql中nullif怎么用
    sql 中的 nullif() 函数,用于比较两个表达式并返回较小的值,若均为 null 则返回 null,语法为 nullif(expression1, expression2)。可用...
    99+
    2024-05-15
  • sql中decode用法
    decode 函数根据输入表达式值将值转换为另一个值,语法为 decode(expression, value1, result1, value2, result2, ..., defa...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作