视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQL基础回顾系列一单表查询(select语句)
2020-11-09 10:08:32 责编:小采
文档


SQL基础回顾系列一 单表查询(select语句) 很久没有写博客了,最近一直忙于找工作,心都没办法安静下来。通过最近的面试,也给自己暴露了不少问题,其中很重要的一块就是数据库,因为项目的原因,最近两年在文思的的项目组都没有使用过数据库,所以数

SQL基础回顾系列一 单表查询(select语句)

  很久没有写博客了,最近一直忙于找工作,服务器,心都没办法安静下来。通过最近的面试,也给自己暴露了不少问题,其中很重要的一块就是数据库,因为项目的原因,最近两年在文思的的项目组都没有使用过数据库,所以数据库这一块也成了我的短板,所以也借离职在家这段时间,系统地回顾一下数据库的知识,我会写成一个系列并坚持写下去。

  先从select语句写起,因为它是学习T-SQL的基础。首先总结一下select语句逻辑处理顺序,如下,下面按照逻辑顺序来总结。

  from

  where

  group by

  having

  select

    over

    distinct

    top

  order by

from子句

  from子句是在逻辑处理阶段第一个要处理的查询子句。它是用来指定要查询的表名,服务器,以及对表进行操作的表运算符。下面的例子是对Sales数据库架构中的Orders表进行查询,看sql语句:

SELECT orderid,custid,empid,orderdate,freight FROM Sales.Orders;

  执行结果:

  注意:1> 应该总是用数据库架构来限定代码中的对象名称,如Sales.Order。
     2> 应该显示指定要查询的列,避免一些额外的代价。
     3> select出的结果看起来是以特定的顺序返回(以orderid的升序排列)的,服务器, 但不能保证绝对这样。
     4> Sql server分隔标识符使用方括号,如[Order Details]

where子句

  它的作用是过滤由from阶段返回的行,可以指定一个谓词或逻辑表达式。如where阶段只保留id为71的客户下的订单,sql代码如下:

SELECT orderid,custid,empid,orderdate,freight FROM Sales.Orders WHERE custid=71;

  程序输出结果为:

group by子句

  group by阶段可以将前面逻辑查询处理阶段返回的行按“组”进行组合,每个组由在group by子句中指定的各元素决定。如对于where阶段返回的数据中出现的每个雇员id和订单年份值的唯一组合,sql代码如下:

SELECT empid , YEAR(orderdate) AS orderyear , SUM(freight) AS totalfreight , COUNT(*) AS numorders FROM Sales.Orders empid , YEAR(orderdate);

  程序输出结果为:

  注意:1,group by阶段之后的所有阶段(包括having,select以及order by)的操作对象都是组。比如这里是select。
     2,一个元素如果不在group by列表中出现,就只能作为聚合函数(Count,Sum,Avg,Min以及Max)的输入,比如这里的Sum和Count函数。

posted on

下载本文
显示全文
专题