一、SQL概述
起源于标准不再赘述,主要分为DDL,DML,DCL
相关介绍,参考MySQL章节:http://www.cnblogs.com/jiangbei/p/6696202.html
二、基本查询SELECT语句
先以SCOTT登录SQL Developer(在工具中直接打开即可,无需安装)
1.查询所有列——使用 *
select * from employees;
// 注意分号
也可以通过ed打开编辑器,这样可以直接在编辑器中进行换行和保存等操作,直接通过 / 进行调用(里面的SQL无需分号)
2.查询部分列
select LAST_NAME,EMAIL from employees;
// 列支持基本运算,包括加减乘除等,这里不再赘述,参考MySQL章节
别名
支持别名——直接在列名后空一格,或者使用AS alias_name,也可以用双引号以便控制别名可以为特殊字符等AS “alias_name”
SELECT LAST_NAME AS "name" FROM employees;
连接符
连接符: 把列与列,列与字符连接在一起。 用 ‘||’表示。 可以用来‘合成’列。
SELECT LAST_NAME||' job is '||JOB_ID FROM employees;
// 字符串可以是 SELECT 列表中的一个字符,数字,日期。 日期和字符只能在单引号中出现。 每当返回一行时,字符串被输出一次。
去重——同样支持DESTINCT关键字
SELECT DISTINCT department_id from employees;
SQL和SQL PLUS
三、过滤和排序
过滤——使用where
SELECT SALARY FROM employees WHERE SALARY > 5000
这里需要注意日期格式的字符串必须使用指定格式:默认的日期格式是 DD-MON月-RR。
SELECT * FROM employees WHERE hire_date = '7-6月-1994';
欲使用正常的yyyy-mm-dd的形式,参考下节的单行函数:to_char()
其他比较运算符: 这些都与MySQL类似(例如LIKE同样支持ESCAPE进行转义),参见相关随笔
其他逻辑运算符:
排序——使用order by
SELECT * FROM employees ORDER BY salary asc,last_name desc;
支持多列排序:当salary相同时,按照last_name排序
支持指定升降序,ASC 升序(默认),降序 DESC