sql - 01_登录数据库

1. SQL*plus是什么?
SQL*plus是一个工具,可以为window、unix系统提供命令行工具,
是一个用来输入和执行SQL语句并显示输出结果的纯文本环境。

2. 连接方式,两种
前提: 在$ORACLE_HOME/network/admin/tnsnames.ora配置连接符
2.1 通过命令行连接到sql*plus
》》 sqlplus pms@pms
enter password: pms
或者 sqlplus pms/pms@pms
2.2 通过命令行连接到sql*plus,并登陆到数据库
》》 sqlplus /nolog
connect pms/pms@pms
3. 配置sqlplus环境,
slqplus命令列表, help index
set : 设置运行环境
每次设置都会在一个session中,关掉sqlplus命令之后,环境变量就会消失
sqlplus每次进入都会执行$oracle_home/client_1/sqlplus/admin下的文件glogin.sql
自动寻找login.sql文件,这个文件配置了一下登录名与密码信息
4. 执行命令
前提: 确保当前service启动了,set oracle_sid = pms174
可以使用的命令有sql语句、sqlplus的命令语句,
sql语句,结束符为分号(;)和斜杠(/),分号(;)可以在一行的末尾或者新的一行,斜杠必须是新的一行才能被识别。

4.1 使用list可以查看sqlplus缓存器中的语句,
4.2 使用@和start命令执行文件中的sql,文件如edit.sql
sqlplus pms/pms@pms174 @list_depts
sqlplus pms/pms@pms174 start list_depts
5. 常见的语句
select、insert、update、delete、merge

*******
问题很重要
*******
1. oracle是基于优化器的查询
2. 优化器是干什么的,如何来实现其功能,
为什么需要优化器?
因为优化器可以提升查询速度

6. select
sql是如何工作的呢?
sql首先处理的不是select (column list),而是处理from语句,它将from语句处理的数据集存储在一个临时空间中,然后处理下面的语句,这个数据集会被不断的处理直到生成最终的结果集,返回给调用者。
--------------
selet c.customer_id, count(o.order_id) as
orders_ct
from oe.customer_id o
join oe.orders o
on c.customer_id = o.customer_id
where c.gender='F'
group by c.customer_id
having count(o.order_id) > 4
order by order_ct, c.customer_id
----------------

7. 标量子查询
查询只能返回一行一列的值,叫标量子查询。 这种查询越少越好,因为标量子查询在结果集中每一行结果产生时,都会执行一遍。

9. 解释一下select语句中关键字的作用:
9.1 distinct作用于结果集中去除重复的一行数据,该行数据要求每一列的数值相等(值和类型都要相等)
9.2 where 对返回的结果集进行过滤,注意: 过滤条件的结果可能是true, false, N/A(未知)
9.3 group by 对结果集进行聚合,注意:select列表中的任何非聚合字段都应该包括在group by表达式中,
group by 中的表达式可能含有一个字段,二个,......这些字段被称为聚合字段。
select 中可能含有函数,聚合字段。
9.4 having 对分组汇总后的查询结果进行过滤,以减少返回的结果集。
9.5 order by 对返回的结果进行排序






posted @ 2017-11-14 13:20  AlisonGavin  阅读(264)  评论(0编辑  收藏  举报