博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
orcale 之 SQL 数据查询
阅读量:6704 次
发布时间:2019-06-25

本文共 2169 字,大约阅读时间需要 7 分钟。

  
从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
  
SELECT select_list[ INTO new_table ]FROM table_source[ WHERE search_condition ][ GROUP BY group_by_expression ][ HAVING search_condition ][ ORDER BY order_expression [ ASC | DESC ] ]

  SELECT 子句

    指定由查询返回的列。
    
语法
SELECT [ ALL | DISTINCT ]     [ TOP n [ PERCENT ] ]

  ALL 指定在结果集中可以显示重复行。ALL 是默认设置。DISTINCT 指定在结果集中只能显示唯一行。为了 DISTINCT 关键字的用途,空值被认为相等。TOP n [PERCENT] 指定只从查询结果集中输出前 n 行。

select * from emp;

  INTO 子句

    创建新表并将结果行从查询插入新表中。
    用户若要执行带 INTO 子句的 SELECT 语句,必须在目的数据库内具有 CREATE TABLE 权限。
    
语法
[ INTO new_table ]

  FROM 子句

    指定从其中检索行的表。需要 FROM 子句,除非选择列表只包含常量、变量和算术表达式(没有列名)。
    
语法
[ FROM { < table_source > } [ ,...n ] ]
    table_source 根据选择列表中的列和 WHERE 子句选择的行,指定要创建的新表名。new_table 的格式通过对选择列表中的表达式进行取值来确定。new_table 中的列按选择列表指定的顺序创建。new_table 中的每列有与选择列表中的相应表达式相同的名称、数据类型和值。

  WHERE 子句

    指定用于限制返回的行的搜索条件。
    
语法
[ WHERE < search_condition > | < old_outer_join > ]

  GROUP BY 子句

    指定用来放置输出行的组,并且如果 SELECT 子句 <select list> 中包含聚合函数,则计算每组的汇总 值。指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者
GROUP BY 表达式必须与选择列表表达式完全匹配。
    说明  如果未指定 ORDER BY 子句,则使用 GROUP BY 子句不按任何特定的顺序返回组。建议始终使用 ORDER BY 子句指定具体的数据顺序。
    
语法
[ GROUP BY group_by_expression [ ,...n ]]

    例子:

    1. 统计各个部门的员工的工资的总和
      select deptno ,sum(sal) from emp group by deptno;
    2. 统计各个部门各个职业的员工的工资的总和 
      select deptno,job,sum(sal) from emp group by(deptno,job) order by deptno;
select job from emp group by job;

  HAVING 子句

    指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。
    
语法
[HAVING 
]
    search_condition 指定组或聚合应满足的搜索条件。当 HAVING 与 GROUP BY ALL 一起使用时,HAVING 子句替代 ALL。HAVING 子句与组有关,WHERE 子句与单个列有关。
    
例子:
    统计各个部门的员工的工资的总和,且工资总和必须在10000以上
    
select deptno ,sum(sal) from emp group by deptno having sum(sal)>10000;

  ORDER BY 子句

    指定结果集的排序。除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
    
语法
[ ORDER BY { order_by_expression [ ASC | DESC ] }    [ ,...n ] ]
    order_by_expression 指定要排序的列。可以将排序列指定为列名或列的别名(可由表名或视图名限定)和表达式,或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。
    可指定多个排序列。ORDER BY 子句中的排序列序列定义排序结果集的结构。

转载于:https://www.cnblogs.com/brother-four/p/6407822.html

你可能感兴趣的文章
钟南山:高收入群体往往老得快
查看>>
线程相关内存参数sort_buffer/join_buffer等的内存分配时机
查看>>
MSSQL · 最佳实践 · SQL Server备份策略
查看>>
如何调整word中表格某一列占半分比
查看>>
oracle 12c 数据库上编写SQL语句时卡顿的问题解决
查看>>
MM_供应商主数据
查看>>
Spring Boot gradle
查看>>
被业界追捧的3D传感技术 奥比中光比拼苹果结果出人意料
查看>>
微信公众平台开发(十二) 发送客服消息
查看>>
Cookie和Session (转)
查看>>
Android 官方命令深入分析
查看>>
重构——34分解条件表达式(Decompose Conditional)
查看>>
mysql死锁问题分析(转)
查看>>
用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发
查看>>
阿里云推出应用配置管理新工具 助力企业效能几何式提升
查看>>
一个程序员的陪产经历--写在宝宝百日之际
查看>>
汽车有眼睛和有眼睛的汽车
查看>>
SQL Server 数据库中的几个常见的临界值
查看>>
解决IPOD NANO7无法开机
查看>>
HBase的scan源码分析客户端部分之整体流程(一)
查看>>