Oracle数据库之限定查询和排序显示详解

五、限定查询和排序显示 5.1、限定查询 5.1.1 认识限定查询 例如 :如果一张表中有 100w 条数据,一旦执行了 SELECT * FROM 表 语句之后,则将在屏幕上显示表中全部数据行的记录,这样既

五、限定查询和排序显示

5.1、限定查询 5.1.1 认识限定查询 例如:如果一张表中有 100w 条数据,一旦执行了 “ SELECT * FROM 表 ” 语句之后,则将在屏幕上显示表中全部数据行的记录,这样既不方便浏览,也可能造成死机的问题,所以此时就必须对查询的结果进行筛选,只选出对自己有用的数据即可,那么就可以通过 WHERE 指定查询的筛选条件。 这么多条数据一起显示肯定是无法浏览的。另外,如果数据量显示的过多,那么有可能出现死机的问题。所以下面首先来观察数据量大对于查询显示会存在什么问题。 在进行 Oracle 数据库安装的时候已经安装了样本方案数据库,所以现在必须将容器由 CDB 切换到 PDB 之中。

范例:以 nolog 的方式打开 sqlplus (在命令行终端)

sqlplus /nolog

范例:使用 sys 管理员登录

CONN sys/chagne_on_install AS SYSDBA;

范例:切换到 PDB 之中

ALTER SESSION SET CONTAINER=pdbmldn;

范例:打开 PDB

ALTER DATABASE pdbmldn OPEN;

范例:查看 sh 用户的数据表内容

SELECT COUNT() FROM sh.sales; 现在这张表中存在有 9w 多条记录,如果直接发出如下指令: SELECT FROM sh.sales; 现在显示结果一直不停变换,无法查看,按 Ctrl+C 停止。所以现在数据量一大,那么是不可能这样直接查看全部数据的,所以全部数据行的显示根本就不可能使用。很多时候往往需要针对所需要的数据进行筛选,而筛选就是限定查询的功能。 现在连接到 c##scott 用户: conn c##scott/tiger; 5.1.2 限定查询语法: SELECT [DISTINCT] * | 列名称 [AS] [列别名],列名称 [AS] [列别名],... FROM 表名称[表别名] [WHERE 条件( s )];

在这个语法之中,就是比之前的语法多了一个 WHERE 子句,在 WHERE 子句之中可以设置一系列的过滤条件。而这些条件可以设置多个,那么这多个条件之间就可以利用逻辑运算进行连接。

逻辑运算符共有以下三种:

与(AND):连接多个条件,多个条件同时满足时才返回 TRUE,有一个条件不满足结果就是 FALSE ; 或(OR):连接多个条件,多个条件之中只要有一个返回 TRUE ,结果就是 TRUE ,如果多个条件返回的都是 FALSE ,结果才是 FALSE ; 非(NOT):求反操作,可以将 TRUE 变 FALSE ,FALSE 变 TRUE 。

逻辑真值表:

NO.条件 x条件 yx AND yx OR yNOT x 1 TRUE TRUE TRUE TRUE FALSE 2 TRUE NULL NULL TRUE FALSE 3 TRUE FALSE FALSE TRUE FALSE 4 NULL TRUE NULL TRUE NULL 5 NULL NULL NULL NULL NULL 6 NULL FALSE FALSE NULL NULL 7 FALSE TRUE FALSE TRUE TRUE 8 FALSE NULL FALSE NULL TRUE 9 FALSE FALSE FALSE TRUE TRUE

范例:统计出基本工资高出 1500 的全部雇员信息

现在的查询已经出现了一个条件要求,所以在这种情况下就必须使用 WHERE 子句进行条件的设置。 SELECT * FROM emp WHERE sal>1500;

现在可以发现并不是所有的数据都显示了,只是部分的数据显示,而且这部分都是满足条件的数据。

现在对于 SQL 语法而言,就具备了三个子句: 第一步:执行 FROM 子句,来控制数据的来源 第二步:执行 WHERE 子句,使用限定符进行数据行的过滤 第三步:执行 SELECT 子句,确定要显示的数据列

5.1.3 对数据进行限定查询 在之前所使用的 “ > ” 是一个关系运算符,在标准 SQL 之中定义了许多的运算符。 常用限定运算符:

NO运算符符号描述 1 关系运算符 >、<、>=、<=、=、!=、<> 进行大小或相等的比较,其中不等于有两种:!= 和 <> 2 判断 null IS NULL 、IS NOT NULL 判断某一列的内容是否是 null 3 逻辑运算符 AND 、OR、NOT AND 表示多个条件必须同时满足,OR 表示只需要有一个条件满足即可,NOT 表示条件取反,即:真变假,假变真 4 范围查询 BETWEEN 最小值 AND 最大值 在一个指定范围中进行查找,查找结果为:“ 最小值 <= 内容 <= 最大值 ” 5 范围查询 IN 通过 IN 可以指定一个查询的范围 6 模糊查询 LIKE 可以对指定的字段进行模糊查询