Oracle(限定查询1)

时间:2023-03-08 16:15:34
Oracle(限定查询1)

3.1、认识限定查询

例如:如果一张表中有100w条数据,一旦执行了“SELECT * FROM 表”语句之后,则将在屏幕上显示表中的全部数据行的记录,这样即不方便浏览,也有可能造成死机的问题出现,所以此时就必须对查询的结果进行筛选,那么就可以通过WHERE指定查询的筛选条件。

在进行Oracle数据库安装的时候已经安装了样本方案数据库,所以现在必须将容器有CBD切换到PDB之中(CDB为Container Database,即数据库容器,PDB为Pluggable Database,即可插拔数据库)。

CDB与PDB的关系:

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

Oracle(限定查询1)

范例:以nolog的方式打开sqlplus

sqlplus / nolog

范例:使用sys管理员进行登录

CONN sys/change_on_install AS SYSDBA;

范例:切换到PDB之中

ALTER SESSION SET CONTAINER=pdbmldn;

范例:打开pdb

ALTER DATABASE pdbmldn OPEN;

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

SELECT COUNT(*) FROM sh.sales;

现在这张数据表之中存在有9万多条记录。如果说现在直接发出如下指令。

SELECT * FROM sh.sales;

所以数据量一大,是不可能直接查看全部数据库的,这时需要对数据进行筛选,筛选就是限定查询。

限定查询的语法:

SELECT [DISTINCT] * |列名称[AS][列别名], 列名称[AS][列别名],...FROM 表名称[表别名][WHERE 条件(S)];

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

范例:

Oracle(限定查询1)

以上查询出现了一个条件要求,所以这种情况下必须使用 WHERE 子句进行条件的设置。

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

现在对于SQL语法而言,就具备了三个子句:

  • 第一步:执行FROM子句,来控制数据的来源;
  • 第二步:执行WHERE子句,使用限定符进行数据行的过滤;
  • 第三步:执行SELECT子句,确定要显示的数据列。