SQL学习要点

来源:互联网 发布:量化数据分析炒股软件 编辑:程序博客网 时间:2024/06/05 18:03
  • 生成临时表

CREATE TABLE #tableName
临时表主要的语法区别是: 表名前面是: #。
临时表的特点是:
只对当前连接有效,其他的连接是不能访问的。且表是保存的tempdb数据库中的,

在前面加#为局部临时表,加##为全局临时表

  • UNION关键字

使用合并查询的前提条件:
*1.

  • GROUP BY

group by语句中不能使用在SELECT列表中定义的列别名来指定组合列

  • ORDER BY

在子查询中不允许出现ORDER BY子句,ORDER BY子句只能出现在最外层的查询块中,除非指定了TOP,否则ORDER BY子句在视图,内联函数,派生表,子查询中无效,

  • COMPUTE CUBE ROLLUP

  • 子查询

任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。

  • 带IN的嵌套查询

一些嵌套内层的子查询会产生一个值,也有一些子查询会返回一列值,即子查询不能返回带几行和几列数据的表,原因在于子查询的结果必须适合外层查询的语句,当子查询产生一系列值时,适合使用带IN的嵌套查询。

  • 带NOT IN的嵌套查询
  • 带SOME的嵌套查询
  • 带ANY的嵌套查询
  • 带ALL的嵌套查询
  • 带EXIST的嵌套查询

  • 连接查询

连接查询是一个笛卡尔乘积运算和一个选取运算构成的查询,首先笛卡尔乘机完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。
连接的全部意义在于水平上合并两个数据集合,产生一个新的结果集合。
1. 内连接
2. 外连接
1. 左连接
2. 右连接

  • ON条件和WHERE条件

  • 当一个查询可能存在多层嵌套,连接时,尽量将多个子查询新建成临时表,即模块化

  • DELETE FROM

用delete语句删除表中的数据,

DELETE FROM table_name<WHERE search_condition>

当不包含WHERE子句时,DELETE语句会在不删除表的情况下删除所有行,这意味着标的结构是完整的,

可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

当需求涉及到某个字段相邻几行的运算时,可以使用累计窗口函数,通过该行累计变量与该字段的值算出该字段的上一个值,即尽量将相邻行的运算添加到一行使其成为一个单独字段进行计算。

0 0
原创粉丝点击