3.1、认识限定查询
例如:如果一张表中有100w条数据,一旦执行了“SELECT * FROM 表”语句之后,则将在屏幕上显示表中的全部数据行的记录,这样即不方便浏览,也有可能造成死机的问题出现,所以此时就必须对查询的结果进行筛选,那么就可以通过WHERE指定查询的筛选条件。
在进行Oracle数据库安装的时候已经安装了样本方案数据库,所以现在必须将容器有CBD切换到PDB之中(CDB为Container Database,即数据库容器,PDB为Pluggable Database,即可插拔数据库)。
CDB与PDB的关系:
在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。
范例:以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子句之中可以设置一系列的过滤条件。过滤条件可以用逻辑运算进行连接。
范例:
以上查询出现了一个条件要求,所以这种情况下必须使用 WHERE 子句进行条件的设置。
现在可以发现并不是所有的数据都显示了,只是部分的数据显示,而且这部分都是满足条件的数据。
现在对于SQL语法而言,就具备了三个子句:
- 第一步:执行FROM子句,来控制数据的来源;
- 第二步:执行WHERE子句,使用限定符进行数据行的过滤;
- 第三步:执行SELECT子句,确定要显示的数据列。