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 对返回的结果进行排序
	
	
	
	
	
	
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号