现在的位置: 首页 > 综合 > 正文

查询语句

2013年08月21日 ⁄ 综合 ⁄ 共 1299字 ⁄ 字号 评论关闭

 

查询语句的一般格式

SELECT [ALL | DISTINCT] <目标表达式1> [AS | 空格 目标表达式1的别名] [,目标表达式2 [AS | 空格 目标表达式2的别名]]......

FROM <表名1 | 视图名1> [表名1或者视图名1的别名] [,<表名2 | 视图名2> [表名2或者视图名2的别名]]

[WHERE <条件表达式>]

[GROUP BY <列名1>[, <列名2>......] [HAVING <条件表达式>] ] 

[ORDER BY <列名1> [ASC | DESC] [, <列名2>[ASC | DESC] ]

 

一个完整的SQL命令叫语句(statement),每一个关键字和后面跟着的选项叫子句(clause),例如,“SELECT * FROM emp;"叫语句,而“SELECT *”叫子句,“FROM emp”也叫子句。

 

查询语句格式的说明:

1>oracle中,SQL语句的关键字可以大写,也可以小写,也可以大小混写。oracle公司推荐在SQL语句中,关键字大写,其余小写,以增加SQL的可读性,本文章赞成oracle公司推荐的SQL书写格式。

2>在查询语句中只有SELECT子句和FROM子句是必须的。以上格式中,除红色标注的部分外,其他的都可以去掉。

3>WHERE子句、GROUP BY子句、ORDER BY子句中使用的列名既可以是数据表定义的字段的名字,也可以是SELECT子句中列的别名,也可以是表达式,也可以是SELECT子句中各个列出现的次序(1,2,3,4......等数字)

4>如果SQL语句中含有ORDER BY子句,则ORDER BY子句必须是该SQL语句的最后一个子句。也就是说,ORDER BY子句只能出现在SQL语句的最后面。

 

select语句的执行顺序

 

1from子句组装来自不同数据源的数据;
2
where子句基于指定的条件对记录行进行筛选;
3
group by子句根据指定的列将数据划分为多个分组;
4
、使用聚集函数进行计算;
5
、使用having子句筛选分组;
6
、计算所有的表达式;
7
、使用order by对结果集进行排序。

 

例子

SELECT * FROM emp;这种方式可以选出emp表中所有的数据。

SELECT empno, ename FROM emp;也可以指定要查询的列。

复杂点的例子,查询出emp表中,每一个部门中工资在400以上且雇佣日期在2004-10-01 13:20:30之前的员工的平均工资,要求平均工资大于1000,并按照部门号的降序排列。

 

SQL> SELECT deptno,avg(sal)
  2  FROM emp
  3  WHERE sal > 400
  4  AND hiredate < to_date('2004-10-01 13:23:25','YYYY-MM-DD HH24:MI:SS')
  5  GROUP BY deptno
  6  HAVING AVG(sal) > 1000
  7  ORDER BY deptno DESC;

    DEPTNO   AVG(SAL)
---------- ----------
        30 1566.66667
        20       2175
        10 2916.66667

 

 

抱歉!评论已关闭.