navicat执行带多行注释符号语句报格式错误_3000字带你看完《SQL基础教程》,学会用SQL进行数据分析...

5f9a0f146e371e802009a10d3e62f909.png

如果要推荐一本学习SQL的书籍,我会首推《SQL基础教程(第2版)》,这本书很适合零经验的初学者用于自学SQL,讲解得比较通俗易懂。

作者MICK,是日本资深数据库工程师,致力于商业智能和数据仓库的开发。

c9065fc4fe9cac801f2a050545555362.png

书中介绍了关系数据库和用来操作关系数据库的SQL语言的使用方法,以及通过丰富的图示、大量示例程序和详实的操作步骤说明,让你循序渐进地掌握SQL的基础知识和使用技巧。

而且,每章结尾都有练习题,可以检验对各章内容的理解程度,还把重要知识点总结成了“法则”,让你更容易掌握重点。

需要的也可以自己去看书:

【下面是我看完这本书的总结】

6a96635aab9e7da27cb12c5516937e7b.png

学习前先安装MySQL数据库和navicat客户端。

MySQL数据库用于存放数据,客户端navicat是为了方便操作数据库而设计的一种图形化软件。

只要电脑上安装了客户端,在任何地方打开电脑,都可以使用客户端连接到MySQL数据库。

安装教程可看:

结缔:如何安装MySQL数据库和navicat客户端?​zhuanlan.zhihu.com
648087b0318c74d47c14ea93f13e9570.png

一、数据库和SQL

1.数据库是什么

数据库,是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

● 用来管理数据库的计算机系统,称为数据库管理系统(DBMS)

● 通过使用DBMS,多个用户便可安全、简单地操作大量数据。

关系数据库通过关系数据库管理系统(RDBMS)进行管理。

2.数据库的结构

● RDBMS通常使用客户端/服务器这样的系统结构。

● 通过从客户端向服务器端发送SQL语句来实现数据库的读写操作。

关系数据库,采用被称为数据库表的二维表来管理数据。

数据库表,由表示数据项目的列(字段)和表示一条数据的行(记录)所组成,以记录为单位进行数据读写。

3.SQL概要

● SQL是为操作数据库而开发的语言。

● SQL通过一条语句来描述想要进行的操作,发送给RDBMS。

● 原则上SQL语句都会使用分号结尾。

● SQL根据操作目的可以分为DDL、DML和DCL

4.表的创建

● 表通过CREATE TABLE语句创建而成。

● 指定列的数据类型(整数型、字符型和日期型等)。

● 可以在表中设置约束(主键约束和NOT NULL约束等)。

5.表的删除和更新

● 使用DROP TABLE语句来删除表。

● 使用ALTER TABLE语句向表中添加列或者从表中删除列。

SQL入门可看:

结缔:零基础快速学会SQL,先看这篇数据库入门学习指南​zhuanlan.zhihu.com
980830d81c076c529e280061318b3f07.png

二、查询基础

1.SELECT语句基础

● 使用SELECT语句从表中选取数据。

● 为列设定显示用的别名

● SELECT语句中可以使用常数或者表达式。

● 通过指定DISTINCT可以删除重复的行。

● SQL语句中可以使用注释

● 可以通过WHERE语句从表中选取出符合查询条件的数据。

2.算术运算符

运算符,是对其两边的列或者值进行运算(计算或者比较大小等)的符号。

● 使用算术运算符可以进行四则运算。

● 括号可以提升运算的优先顺序(优先进行运算)。

● 包含NULL的运算,其结果也是NULL。

3.比较运算符

比较运算符可以用来判断列或者值是否相等,还可以用来比较大小。

● 判断是否为NULL,需要使用IS NULL或者IS NOT NULL运算符。

4.逻辑运算符

● 通过使用逻辑运算符,可以将多个查询条件进行组合。

● 通过NOT运算符可以生成“不是~”这样的查询条件。

● 两边条件都成立时,使用AND运算符的查询条件才成立。

● 只要两边的条件中有一个成立,使用OR运算符的查询条件就可以成立。

SQL简单查询可看:

结缔:搞不懂这些查询语句,SQL简单查询也无法从入门到熟练​zhuanlan.zhihu.com
81cd63bc1ccd9ece93be3418bdede99f.png

三、聚合与排序

1.对表进行聚合查询

● 使用聚合函数对表中的列进行计算合计值或者平均值等的汇总操作。

● 通常,聚合函数会对NULL以外的对象进行汇总。但是只有COUNT函数例外,使用COUNT(*)可以查出包含NULL在内的全部数据的行数。

● 使用DISTINCT关键字删除重复值。

2.对表进行分组

● 通过使用聚合函数和GROUP BY子句,可以将表分割后再进行汇总。

● 在GROUP BY子句中指定的列,称为聚合键或者分组列

● 聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。

● 使用聚合函数和GROUP BY子句时需要注意以下4点:

① 只能写在SELECT子句之中

② GROUP BY子句中不能使用SELECT子句中列的别名

③ GROUP BY子句的聚合结果是无序的

④ WHERE子句中不能使用聚合函数

3.为聚合结果指定条件

● 使用COUNT函数等对表中数据进行汇总操作时,为其指定条件的是HAVING子句

聚合函数可以在SELECT子句、HAVING子句和ORDER BY子句中使用。

● HAVING子句要写在GROUP BY子句之后。

WHERE子句用来指定数据行的条件,HAVING子句用来指定分组的条件。

4.对查询结果进行排序

● 使用ORDER BY子句对查询结果进行排序。

● 在ORDER BY子句中列名的后面使用关键字ASC可以进行升序排序,使用DESC关键字可以进行降序排序。

● ORDER BY子句中书写的列名,称为排序键。ORDER BY子句中可以指定多个排序键。

● 排序健中包含NULL时,会在开头或末尾进行汇总。

● ORDER BY子句中可以使用SELECT子句中定义的列的别名。

● ORDER BY子句中可以使用SELECT子句中未出现的列或者聚合函数。

● ORDER BY子句中不能使用列的编号。列编号,是指SELECT子句中的列按照从左到右的顺序进行排列时所对应的编号(1, 2, 3, …)。

SQL汇总分析可看:

结缔:带你玩转SQL数据汇总分析,工作再忙都要看​zhuanlan.zhihu.com
c018a686331ce659eaee7932f2ec3916.png

四、数据更新

1.数据的插入(INSERT语句的使用方法)

● 使用INSERT语句可以向表中插入数据(行),INSERT语句每次执行一行数据的插入。

● 将列名和值用逗号隔开,分别括在()内,这种形式称为清单

● 对表中所有列进行INSERT操作时可以省略表名后的列清单。

● 插入NULL时需要在VALUES子句的值清单中写入NULL。

● 可以为表中的列设定默认值(初始值),默认值可以通过在CREATE TABLE语句中为列设置DEFAULT约束来设定。

● 插入默认值可以通过两种方式实现,即在INSERT语句的VALUES子句中指定DEFAULT关键字(显式方法),或省略列清单(隐式方法)

● 使用INSERT…SELECT可以从其他表中复制数据。

2.数据的删除(DELETE语句的使用方法)

● 如果想将整个表全部删除,可以使用DROP TABLE语句,如果只想删除表中全部数据,需使用DELETE语句

● 如果想删除部分数据行,只需在WHERE子句中书写对象数据的条件即可。通过WHERE子句指定删除对象的DELETE语句,称为搜索型DELETE语句

3.数据的更新(UPDATE语句的使用方法)

● 使用UPDATE语句可以更改(更新)表中的数据。

● 更新部分数据行时可以使用WHERE来指定更新对象的条件。通过WHERE子句指定更新对象的UPDATE语句,称为搜索型UPDATE语句

● UPDATE语句可以将列的值更新为NULL。

● 同时更新多列时,可以在UPDATE语句的SET子句中,使用逗号分隔更新对象的多个列。

4.事务

事务,是需要在同一个处理单元中执行的一系列更新处理的集合。通过使用事务,可以对数据库中的数据更新处理的提交和取消进行管理。

● 事务处理的终止指令包括COMMIT(提交处理)ROLLBACK(取消处理)两种。

● DBMS的事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)四种特性。通常将这四种特性的首字母结合起来,统称为ACID特性

5fd36aca04698136dd97f9f6d185fdee.png

五、复杂查询

1.视图

● 从SQL的角度来看,视图和表是相同的,两者的区别在于表中保存的是实际的数据,而视图中保存的是SELECT语句(视图本身并不存储数据)。

● 使用视图,可以轻松完成跨多表查询数据等复杂操作。

● 可以将常用的SELECT语句做成视图来使用。

● 创建视图需要使用CREATE VIEW语句

● 视图包含“不能使用ORDER BY”和“可对其进行有限制的更新”两项限制。

● 删除视图需要使用DROP VIEW语句

2.子查询

子查询,是一次性视图(SELECT语句)。与视图不同,子查询在SELECT语句执行完毕之后就会消失。

● 由于子查询需要命名,因此需要根据处理内容来指定恰当的名称。

标量子查询,是只能返回一行一列的子查询。

3.关联子查询

关联子查询会在细分的组内进行比较时使用。

● 关联子查询和GROUP BY子句一样,也可以对表中的数据进行切分。

● 关联子查询的结合条件如果未出现在子查询之中就会发生错误。

SQL复杂查询可看:

结缔:想不明白烧脑的关联子查询,如何能玩转SQL复杂查询?​zhuanlan.zhihu.com
84966fbc3039fe380a8af4ed74efd6ed.png

六、函数、谓词、CASE表达式

1.各种各样的函数

● 根据用途,函数可以大致分为算术函数、字符串函数、日期函数、转换函数和聚合函数

2.谓词

谓词,是返回值为真值的函数。

● 掌握LIKE的三种使用方法(前方一致、中间一致、后方一致)。

● 需要注意BETWEEN包含三个参数。

● 想要取得NULL数据时必须使用IS NULL

● 可以将子查询作为INEXISTS的参数。

3.CASE表达式

● CASE表达式,分为简单CASE表达式搜索CASE表达式两种。搜索CASE表达式包含简单CASE表达式的全部功能。

● 虽然CASE表达式中的ELSE子句可以省略,但为了让SQL语句更加容易理解,还是希望大家不要省略。

● CASE表达式中的END不能省略

● 使用CASE表达式能够将SELECT语句的结果进行组合。

SQL多表查询可看:

结缔:一张图记住7种表的联结,帮助你秒懂SQL多表查询​zhuanlan.zhihu.com
dfa0614a415e9b0e482fbe61d58f238e.png

七、集合运算

1.表的加减法

集合运算,是对满足同一规则的记录进行的加减等四则运算。

● 使用UNION(并集)、INTERSECT(交集)、EXCEPT(差集)等集合运算符来进行集合运算。

● 集合运算符可以去除重复行。

● 如果希望集合运算符保留重复行,就需要使用ALL选项。

2.联结(以列为单位对表进行联结)

联结(JOIN)就是将其他表中的列添加过来,进行“添加列”的集合运算。UNION是以行(纵向)为单位进行操作,而联结则是以列(横向)为单位进行的。

● 联结大体上分为内联结外联结两种。首先请大家牢牢掌握这两种联结的使用方法。

● 请大家一定要使用标准SQL的语法格式来写联结运算。

f281209b9d6def846af3d3f5294cf110.png

八、SQL高级处理

1.窗口函数

窗口函数,可以进行排序、生成序列号等一般的聚合函数无法实现的高级操作。

● 理解PARTITION BYORDER BY这两个关键字的含义十分重要。

2.GROUPING运算符

● 只使用GROUP BY子句和聚合函数是无法同时得出小计和合计的。如果想要同时得到,可以使用GROUPING运算符

SQL高级功能可看:

结缔:SQL高级功能之窗口函数,用来处理经典排名面试题,简直太好用了!​zhuanlan.zhihu.com
1857781208ad8d5937c87dbf7ee2e864.png

最后一句话,看书还不如把我写的中级专栏看完快,虽然书也得多翻。

中级数据分析项目​zhuanlan.zhihu.com
8cd3a8a67fa3cd92024fc1f9745c8c08.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值