Oracle 基础查询
- SQL (Structured Query Language )结构化查询语言。
查询是一种从一个或多个表或视图中检索数据的操作,不会改变表中的数据。
查询数据是数据库的核心操作,是使用频率最高的操作。
- select语句的基本语法格式是:
select [distinct] * | 列名1[as c1],列名2[as c2]..., 列名n , 组函数(...)
from 表名1别名1,表名2别名2...
[where 条件]
[group by 列名1,列名2..., 列名n ]
[having 条件]
[order by 排序列名1 ASC | DESC , 排序列名2 ASC | DESC...]
- SQL执行计划
(8)SELECT (9)DISTINCT (11)<Top Num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
例:
1) 查询出部门表中 所有部门的编号与名称
selectd.id,d.name
from s_dept d;
2) 查询出部门表中 所有部门的编号与名称,位置
Select d.id,d.name,d.region_id
From s_dept d;
3) 查询出员工表中的 员工的编号,姓名,薪水与职位
selecte.id,e.first_name,e.salary,e.title
froms_emp e;
4) 查询出员工表中的所有信息
select * from s_emp;
- 表的别名,列的别名
distinct关键字: 去重,必须放在开头字段前,会作用于后面所有的字段
本身是 二重循环查询,当数据量较大时,不适用
|| 表示拼接
nvl() 表示空值置换函数
示例:
1) 从s_emp表中查询公司中所有职位
select distinct title from s_emp;
- 排序: order by 列名1 asc | desc , 列名2 asc | desc .... [ 默认升序]
示例:
2) 查询出所有的员工信息,按照他们的薪水的降序排列
select * from s_emp e order by e.salary;
3) 查询出所有的员工信息,按照他们的薪水的降序排列,若工资相同,根据入职日期的升序排列
select * from s_emp e
order by e.saaryldesc , e.start_dateasc;