一、官档
	Book → SQL Language Reference → 19 SQL Statements: SAVEPOINT to UPDATE → SELECT 
	二、基础语法
	
		
			- 
				 SELECT {[distinct]列名,列名,…}|* 
 
			 
			- 
				   FROM 表名
			 
			- 
				 [WHERE 条件] 
			 
			- 
				 [GROUP BY 分组列名] 
			
 
			- 
				[HAVING 聚合函数] 
			
 
			- 
				 [ORDER BY 排序列名 ASC|DESC] 
			
 
		
	 
 
	三、符号
1、单引号('):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。 
	2、双引号("):在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。
	3、撇号('):在Oracle中,撇号也可以写成彼此相邻的两个单引号。为了在供应商名字中间查找所有带撇号的供应商名字,可以这样编写代码: 
select * from l_suppliers where supplier_name like '%''%'  
	4、&符号:在Oracle中,&符号常用来指出一个变量。例如,&fox是一个变量,稍微有点不同的一种&& fox。每当&fox出现在Oracle脚本中时,都会要求您为它提供一个值。而使用&&fox,您只需要在& &fox第一次出现时为它提供变量值。如果想将&符号作为普通的符号使用,则应该关闭这个特性。要想关闭这个特性,可以运行以下的命令: set define off ,这是一个SQLplus命令,不是一个SQL命令。SQLplus设置了SQL在Oracle中运行的环境。 
	5、双竖线(||):Oracle使用双竖线表示字符串连接函数。 
	6、星号(*):select *意味着选择所有的列,count(*)意味着计算所有的行,表示通配符时,表示0个或任意多个字符。 
	7、正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。 
	8、不等于:有多种表达方式:!=、^=、<>、not xxx=yyy、not(xxx=yyy)
	9、加减乘除:+ - * /
	四、别名
	
		
			- 
				SELECT EMPNO AS "员工编号", ENAME AS "员工名称" FROM EMP; 
 
			 
			- 
				
 
			 
			- 
				SELECT EMPNO 员工编号, ENAME 员工名称 FROM EMP; 
			
 
			- 
				
			 
			- 
				SELECT EMPNO "员工编号", ENAME "员工名称" FROM EMP; 
			
 
		
	 
 
	五、去重
	
		
			- 
				--员工分布在哪些部门 ,列出部门ID 
 
			 
			- 
				SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES
			
 
		
	 
 
	六、DESCRIBE
	
		
			- 
				DESC OWNER.TABLE_NAME;
 
			 
			- 
				
			 
			- 
				SELECT COLUMN_NAME, 
			 
			- 
				      DECODE(NULLABLE, 'Y', ' ', 'NOT NULL') NULLABLE, 
			 
			- 
				      DECODE(DATA_TYPE, 
			 
			- 
				              'RAW', DATA_TYPE || '(' || DATA_LENGTH || ')', 
			 
			- 
				              'CHAR', DATA_TYPE || '(' || DATA_LENGTH || ')', 
			 
			- 
				              'VARCHAR', DATA_TYPE || '(' || DATA_LENGTH || ')', 
			 
			- 
				              'VARCHAR2', DATA_TYPE || '(' || DATA_LENGTH || ')', 
			 
			- 
				              'NUMBER', NVL2(DATA_PRECISION, 
			 
			- 
				                            DECODE(DATA_SCALE, 
			 
			- 
				                                    0, DATA_TYPE || '(' || DATA_PRECISION || ')', 
			 
			- 
				                                    DATA_TYPE || '(' || DATA_PRECISION || ',' || DATA_SCALE || ')'), 
			 
			- 
				                            DATA_TYPE), 
			 
			- 
				              DATA_TYPE) DATA_TYPE
			 
			- 
				  FROM DBA_TAB_COLUMNS
			 
			- 
				WHERE OWNER = UPPER('&sch') 
			 
			- 
				  AND TABLE_NAME = UPPER('&tab') 
			 
			- 
				ORDER BY COLUMN_ID
			
 
		
	 
 
	七、查询例子
	
		
			- 
				--*:表示查询所有列 
 
			 
			- 
				select * from employees; 
			 
			- 
				--查询固定列 
			 
			- 
				select DEPARTMENT_NAME, MANAGER_ID
			 
			- 
				from departments; 
			 
			- 
				--*:在运算符里表示乘以 
			 
			- 
				select FIRST_NAME 名字, 
			 
			- 
				SALARY * COMMISSION_PCT*12 年度奖金
			 
			- 
				from employees
			 
			- 
				where salary > 10000; 
			 
			- 
				--||:拼接字符串 
			 
			- 
				--'':表示单引号,在字符串里显示,用于区分'结束输出 
			 
			- 
				select last_name || ' ''s salary is : ' || salary aaa
			 
			- 
				from employees
			 
			- 
				where salary > 10000; 
			 
			- 
				--多个单引号时使用q'[]',避免多次使用'' 
			 
			- 
				select last_name || q'[ 's sa'la'ry' is : ]' || salary aaa
			 
			- 
				from employees
			 
			- 
				where salary > 10000;