SQL必知必会

2019-04-21  本文已影响0人  zzzzzzzeng

SQL 必知必会

第1章 了解SQL

定义

主键

第2章 检索数据:SELECT

基本语法

选择全部列

选择不同行

限制查询结果行数

第3章 排序检索数据:ORDER BY

语句位置

指定排序列的方式

指定顺序

第4章 过滤数据:WHERE

基本操作符

第5章 高级数据过滤

AND

OR

IN

NOT

第6章 通配符:LIKE

%

下划线_

字符集匹配

^

注意点

第7章 创建计算字段

位置

别名(ALIAS)

拼接字段(concatenate)

算术计算

第8章 使用函数处理数据

DBMS差异:函数在各DBMS的通用度较低,只有少数函数通用。

使用函数

第9章 汇总数据

汇集数据

聚集函数内部的可用参数

组合聚集函数

第10章 分组数据

创建分组:GROUP BY

过滤分组:HAVING

第11章 使用子查询

定义

作用

第12章 连接表

联结表

第13章 高级联结

表别名

使用不同类型的联结

第14章 组合查询

UNION

UNION ALL

EXCEPT/MINUS

INTERCEPT

第15章 插入数据

INSERT

INSERT INTO ...SELECT

SELECT INTO

第16课 更新和删除数据

更新数据

SELECT *
FROM course;

删除数据

使用更新和删除注意点

第17章 创建和操纵表

创建表

更新表

删除表

重命名表格

第18课 使用视图

视图作用

注意

限制规则

创建视图

使用建议

第19课 使用储存过程

定义

使用

RETURN @order_num

- 创建方法②

    - CREATE PRODUCE NewOrder @cust_id CHAR(10)

AS
INSERT INTO Orders(cust_id)
VALUES(cust_id)

SELECT cust_num = @@IDENTITY

        - 方法②的日期由创建表格时的DEFAULT GETDATE()给出

order_num由标识字段(identity field)给出

注意点

第20课 管理事务处理

事务处理

控制事务处理

ROLLBACK TRANSACTION delete1:

- 注意

    - 每个回滚点的名称必须唯一(本实例为delete1)
    - 常用回滚条件:

IF @@ERROR <>0 ROLLBACK TRANSCATION delete1;

补充

ONLY_FULL_GROUP_BY

大小写区分

注释

数值型补零前后的值大小相同

MSSQL语句顺序

(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>

(8) SELECT (9) DISTINCT (11) < top_specification> < select_list>

(10) ORDER BY < order_by_list>

    - FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1

ON: 对虚表VT1进行ON筛选,只有那些符合<join-condition>的行才会被记录在虚表VT2中。
JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, rug from子句中包含两个以上的表的话,那么就会对上一个join连接产生的结果VT3和下一个表重复执行步骤1~3这三个步骤,一直到处理完所有的表为止。
WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合<where-condition>的记录才会被插入到虚拟表VT4中。
GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5.
CUBE | ROLLUP: 对表VT5进行cube或者rollup操作,产生表VT6.
HAVING: 对虚拟表VT6应用having过滤,只有符合<having-condition>的记录才会被 插入到虚拟表VT7中。
SELECT: 执行select操作,选择指定的列,插入到虚拟表VT8中。
DISTINCT: 对VT8中的记录进行去重。产生虚拟表VT9.
ORDER BY: 将虚拟表VT9中的记录按照<order_by_list>进行排序操作,产生虚拟表VT10.
LIMIT:取出指定行的记录,产生虚拟表VT11, 并将结果返回。

        - 理解:FROM 中定义的别名,可以全局引用

NULL不是空字符串

SQL 必知必会.png
上一篇 下一篇

猜你喜欢

热点阅读