吃透SQL:从入门到实战(精讲视频版)_第1页
吃透SQL:从入门到实战(精讲视频版)_第2页
吃透SQL:从入门到实战(精讲视频版)_第3页
吃透SQL:从入门到实战(精讲视频版)_第4页
吃透SQL:从入门到实战(精讲视频版)_第5页
已阅读5页,还剩304页未读 继续免费阅读

付费阅读全文

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

吃透

从入门到实战SQL

张明星◎编著

SQL

内容简介

随着大数据时代的到来,SQL语言作为访问和处理数据库的标准计算机语言,

已成为数据分析的必备技能。本书循序渐进地讲解了使用SQL语言操作数据库的核

心知识,并通过具体示例的实现过程演练了查询、更新、删除、添加、维护数据的

方法和流程。全书简洁而不失其技术深度,内容丰富全面,以精炼的文字介绍了复

杂的案例,帮助读者从知识点讲解平滑过渡到动手实践。

本书旨在帮助数据分析从业人员更加细致深入地了解SQL语言的基础语法和应

用技能,并在此基础上进一步提高自己运用SQL语言高效解决实践问题的能力;除

此之外,系统的知识脉络和嵌入其中的经典案例让本书还可以作为大专院校相关专

业以及培训学校的参考用书。

图书在版编目(CIP)数据

吃透SQL:从入门到实战:精讲视频版/张明星编著.—北京:

中国铁道出版社有限公司,2022.8

ISBN978-7-113-28602-6

Ⅰ.①吃…Ⅱ.①张…Ⅲ.①SQL语言Ⅳ.①TP311.132.3

中国版本图书馆CIP数据核字(2021)第247160号

书名:吃透SQL:从入门到实战(精讲视频版)

CHITOUSQL:CONGRUMENDAOSHIZHAN(JINGJIANGSHIPINBAN)

作者:张明星

责任编辑:荆波编辑部电话:(010)51873026邮箱:the-tradeoff@

封面设计:

责任校对:孙玫

责任印制:赵星辰

出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)

印刷:北京铭成印刷有限公司

版次:2022年8月第1版2022年8月第1次印刷

开本:787mm×1092mm1/16印张:19字数:396千

书号:ISBN978-7-113-28602-6

定价:79.00元

版权所有侵权必究

凡购买铁道版图书,如有印制质量问题,请与本社读者服务部联系调换。电话:(010)51873174

打击盗版举报电话:(010)63549461

前言

在软件开发应用中,数据库是实现动态软件的基础。无论是桌面软件还是Web程

序,都需要借助于数据库技术实现动态交互功能。而熟练运用数据库技术的前提便是

扎实掌握结构化查询语言(StructuredQueryLanguage,简称SQL);SQL语言是一种数

据库查询和程序设计语言,用于存取、查询、更新数据以及管理数据库系统。

SQL语言是数据库开发技术的核心,是国际上公认的标准数据库处理语言。无论

是MySQL、SQLServer、Oracle和DB2数据库,还是其他非关系型的数据库,都是用

SQL语言实现数据的添加、修改、删除和维护等操作。

从应用场景和岗位需求来讲,SQL更是程序员必备的一项技能,无论做后端开发、

大数据开发、数据分析、DBA还是产品经理,SQL都是必须要掌握的,这是笔者写作

本书的主要目的,希望通过SQL基本技能和实践案例的细致讲解,帮助读者夯实基础,

提升工作效率。

本书的特色

1.内容全面

本书详细讲解了SQL语言开发技术,循序渐进地阐述和演示了各个知识点的使用

方法和技巧,帮助读者快速步入SQL应用高手之列。

2.适用于主流数据库

本书中的绝大部分示例都适用于MySQL、SQLServer和Oracle数据库,这3种数

据库是当今开发领域中主流的数据库产品,可满足本书读者的学习要求以及在不同数

据库之间切换的实践需要。

3.示例驱动教学

本书采用理论加示例的讲解方式,通过对这些示例的细致演示实现了对知识点的

横向切入和纵向比较,让读者有更多的实践演练机会,并且可以从不同的方位展现一

个知识点的用法,真正实现了拔高的学习效果。

4.提供精彩讲解视频

本书针对每节内容录制了讲解视频,视频中既包括示例讲解也包括知识点讲解,

帮助读者更透彻地理解书中内容并清楚示例运行过程。

本书的读者对象

本书可帮助以下几类读者提升数据处理和分析的实践能力。

(1)数据库管理和开发人员

帮助他们更加系统地了解SQL语言的基础语法和应用技能,并在此基础上进一步

提高自己运用SQL语言高效解决实践问题的能力。

ii吃透SQL:从入门到实战(精讲视频版)

(2)数据分析行业非技术人员

SQL语言可以较高地提升数据分析统计的效率,可帮助该类读者适当提升数据应

用技能,提升工作效率。

(3)相关专业和培训班学生

本书具备较为系统的知识脉络和嵌入其中的经典案例,可以帮助大专院校相关专

业以及培训学校的学生夯实SQL语言基础,提高动手能力。

整体下载包

笔者为书中每节内容录制了讲解视频,为了帮助不同网络环境的读者顺利获取到

本书的视频内容,笔者将所有视频按照章节序号做成了整体下载包,下载链接和二维

码放在了本书封底上方,读者可获取使用。

致谢

本书在编写过程中得到了中国铁道出版社有限公司各位编辑的大力支持,正是各

位编辑的求实、耐心和效率,才使得本书能够以更优化的表现方式出版。

另外,也十分感谢我的家人给予的巨大支持。

笔者水平有限,书中存在纰漏之处在所难免,诚请读者提出宝贵的意见或建议,

以便修订并使之更臻完善。

最后感谢您购买本书,希望本书能成为您数据分析和应用之路上的领航者,祝您

阅读快乐!

张明星

2022年5月

目录

第1章数据库技术的相关概念

1.1数据库的定义.............................................................................................................1

1.1.1数据......................................................................................................................1

1.1.2数据库..................................................................................................................2

1.1.3数据库管理系统...................................................................................................2

1.1.4数据库的种类.......................................................................................................2

1.2SQL基础....................................................................................................................3

1.2.1SQL的优势和功能...............................................................................................4

1.2.2SQL的结构..........................................................................................................4

1.3准备数据.....................................................................................................................4

第2章数据的基本查询

2.1使用SELECT语句的基本语法................................................................................9

2.2单列查询.....................................................................................................................9

2.2.1单列查询的基本操作..........................................................................................10

【示例2-1】查询数据库表goods中保存的商品名称....................................................10

【示例2-2】查询数据库表goods中保存的商品价格....................................................10

2.2.2大小写问题.........................................................................................................11

【示例2-3】查询数据库表goods中商品的库存信息....................................................11

2.3多列查询...................................................................................................................11

2.3.1多列查询的基本操作..........................................................................................11

【示例2-4】同时查询数据库表goods中商品的名称和价格信息.................................12

【示例2-5】同时查询数据库表goods中商品的名称、价格和库存信息.....................12

2.3.2空格的问题.........................................................................................................12

【示例2-6】同时查询数据库表goods中商品的名称、价格、库存和销量信息..........13

2.4查询所有的列...........................................................................................................13

【示例2-7】查询数据库表goods中所有列的信息(使用通配符“*”).....................14

【示例2-8】查询数据库表goods中所有列的信息(列出所有列名).........................14

2.5在查询时使用别名...................................................................................................15

2.5.1为列设置别名.....................................................................................................15

ii吃透SQL:从入门到实战(精讲视频版)

【示例2-9】为数据库表goods中的商品列设置别名....................................................15

2.5.2为表设置别名.....................................................................................................16

【示例2-10】为数据库表goods设置别名.....................................................................16

2.6在查询时删除重复的数据.......................................................................................16

2.6.1删除重复数据的基本语法..................................................................................16

2.6.2不使用DISTINCT和使用DISTINCT后的对比...............................................16

【示例2-11】查询数据库表goods中商品制造商的信息..............................................17

【示例2-12】查询数据库表goods中商品制造商的信息(删除重复数据)...............17

2.6.3在查询多列信息时使用DISTINCT...................................................................18

【示例2-13】使用DISTINCT语句查询数据库表goods中制造商

和价格的信息........................................................................................18

2.7使用WHERE子句过滤查询结果...........................................................................19

2.7.1使用WHERE子句的语法..................................................................................19

2.7.2简单的限制查询.................................................................................................19

【示例2-14】查询数据库表goods中价格是45的数据................................................19

【示例2-15】查询数据库表goods中价格高于50的数据............................................20

2.7.3涉及多列的限制查询..........................................................................................20

【示例2-16】查询数据库表goods中价格是45的商品名称........................................20

2.7.4WHERE子句的位置问题...................................................................................21

【示例2-17】查询数据库表goods中价格高于50的商品名称(错误用法).............21

2.8限制查询结果...........................................................................................................21

2.8.1在SQLServer数据库中限制查询结果..............................................................22

【示例2-18】查询数据库表goods中前5个商品的详细信息......................................22

【示例2-19】查询数据库表goods中前5个商品的名称信息......................................22

2.8.2在MySQL数据库中限制查询结果....................................................................23

【示例2-20】查询数据库表goods中前5个商品的详细信息......................................23

【示例2-21】查询数据库表goods中第5行以后的5个商品信息...............................24

【示例2-22】查询数据库表goods中第3行以后的5个商品信息...............................24

2.8.3在其他数据库中限制查询结果..........................................................................25

【示例2-23】查询数据库表goods中前5个商品的详细信息(Oracle版)................25

【示例2-24】查询数据库表goods中前5个商品的详细信息(DB2版)...................26

2.9使用注释...................................................................................................................26

【示例2-25】同时查询数据库表goods中商品的名称和价格信息

(SQLServer版)......................................................................................27

【示例2-26】同时查询数据库表goods中商品的名称和价格信息

(MySQL版)............................................................................................27

【示例2-27】同时查询数据库表goods中商品的名称和价格信息

(SQLServe/MySQL版)..........................................................................28

目录iii

第3章数据过滤的深入探讨

3.1在WHERE子句中使用比较操作符.......................................................................29

3.1.1使用“=”过滤查询数据....................................................................................30

【示例3-1】查询数据库表goods中价格是45的商品的详细信息...............................30

3.1.2使用“>”过滤查询数据....................................................................................30

【示例3-2】查询数据库表goods中价格高于60的商品的详细信息...........................30

【示例3-3】查询数据库表goods中销量高于500的商品信息....................................31

3.1.3使用“<”过滤查询数据....................................................................................31

【示例3-4】查询数据库表goods中价格低于60的商品的详细信息...........................31

3.1.4使用“>=”过滤查询数据.................................................................................32

【示例3-5】查询数据库表goods中价格大于等于80的商品的详细信息...................32

3.1.5使用“<=”过滤查询数据.................................................................................32

【示例3-6】查询数据库表goods中库存小于等于60的商品的详细信息...................33

3.1.6使用“!>”过滤查询数据..................................................................................33

【示例3-7】查询数据库表goods中库存不大于60的商品信息..................................33

3.1.7使用“!<”过滤查询数据..................................................................................34

【示例3-8】查询数据库表goods中库存不小于60的商品信息..................................34

3.1.8使用“!=”和“<>”过滤查询数据..................................................................35

【示例3-9】查询数据库表goods中售价不是45的商品信息(使用“!=”)..............35

【示例3-10】查询数据库表goods中生产厂家不是“公司A”的商品信息

(使用“<>”)...........................................................................................35

3.2空值处理...................................................................................................................36

3.2.1在数据库中创建空值..........................................................................................36

3.2.2判断某个值是否为空值......................................................................................37

【示例3-11】查询数据库表goods中销量值为空的商品信息......................................37

【示例3-12】查询数据库表goods中销量值不为空的商品信息..................................38

第4章在查询中使用运算符和表达式

4.1使用算术运算符和表达式.......................................................................................39

4.1.1常用的算术运算符.............................................................................................39

4.1.2在WHERE子句中使用算术运算符...................................................................39

【示例4-1】查询数据库表goods中价格是45的商品的详细信息...............................40

【示例4-2】查询数据库表goods中商品编号是2的商品的详细信息.........................40

【示例4-3】查询数据库表goods中价格是45的商品的详细信息

(混合运算形式)......................................................................................40

4.1.3在SELECT子句中使用算术运算符..................................................................41

iv吃透SQL:从入门到实战(精讲视频版)

【示例4-4】分别查询并显示数据库表goods中商品的正常价格和两倍

价格信息.....................................................................................................41

【示例4-5】分别查询并显示数据库表goods商品的正常价格和统一加2后的

价格信息.....................................................................................................42

【示例4-6】计算数据库表goods中每种商品的销售额................................................42

【示例4-7】分别查询并显示数据库表goods中商品的正常价格和6倍价格信息......44

4.1.4在TOP子句中使用算术运算符.........................................................................44

【示例4-8】查询数据库表goods中前5个商品的详细信息(SQLServer版)..........44

4.2使用逻辑运算符和表达式.......................................................................................45

4.2.1常见的逻辑运算符.............................................................................................45

4.2.2使用NOT运算符...............................................................................................45

【示例4-9】查询数据库表goods中单价不大于等于80的商品信息...........................46

4.2.3使用OR运算符..................................................................................................47

【示例4-10】查询数据库表goods中单价是55或77的商品信息...............................47

【示例4-11】查询数据库表goods中单价是55或销量大于2000的商品信息............48

4.2.4使用AND运算符...............................................................................................48

【示例4-12】查询数据库表goods中单价是45并且销量大于200的商品信息..........49

4.2.5使用逻辑运算符处理NULL值..........................................................................50

【示例4-13】查询数据库表goods中单价是45或者销量为NULL的商品信息.........51

【示例4-14】查询数据库表goods中单价是60并且销量为NULL的商品信息.........52

第5章数据排序

5.1数值排序...................................................................................................................54

5.1.1数值排序的基本语法..........................................................................................54

5.1.2升序排列和降序排列..........................................................................................54

【示例5-1】查询数据库表goods中的商品信息并按照价格升序排列.........................55

【示例5-2】查询数据库表goods中的商品信息并按照价格降序排列.........................56

5.1.3不使用ASC和DESC的排序............................................................................57

【示例5-3】查询数据库表goods中的商品信息并按照销量升序排列.........................57

5.1.4按照别名进行排序.............................................................................................57

【示例5-4】查询数据库表goods中商品的名称和销量信息并按照销量升序排列...............58

5.1.5多列排序.............................................................................................................58

【示例5-5】查询数据库表goods中商品的信息并按照价格和销量升序排列.............59

【示例5-6】查询数据库表goods中商品的信息,先按照价格升序排列,

价格相同时可按照销量降序排列...............................................................60

5.1.6排序的简写形式.................................................................................................60

【示例5-7】查询数据库表goods中商品的信息并按照价格进行升序排列

目录v

(简写形式)..............................................................................................61

5.1.7对指定的行数进行排序......................................................................................62

【示例5-8】按照价格升序排列数据库表goods中前5个商品的详细信息

(SQLServer版)......................................................................................62

【示例5-9】找出数据库表goods中销量最高的商品....................................................63

【示例5-10】按照价格升序排列数据库表goods中前5个商品的详细信息

(MySQL版)............................................................................................63

【示例5-11】按照价格升序排列数据库表goods中第3行以后的3个商品...............64

【示例5-12】按照价格升序排列数据库表goods中前5个商品的详细信息

(Oracle版)..............................................................................................64

【示例5-13】按照价格升序排列数据库表goods中前5个商品的详细信息

(DB2版).................................................................................................65

5.1.8使用比较运算符限制排序..................................................................................65

【示例5-14】按照销量升序排列数据库表goods中价格是45的商品信息.................66

【示例5-15】查询数据库表goods中销量大于60的商品信息,并将查询结果

按照降序排列............................................................................................66

【示例5-16】升序排列数据库表goods中售价不等于45的商品信息.........................66

5.2文本排序...................................................................................................................67

5.2.1英文字符串的排序.............................................................................................67

【示例5-17】查询数据库表goods中的商品信息并按照列“ship”的值升序排列.....68

5.2.2中文的默认排序.................................................................................................69

【示例5-18】查询数据库表goods中的商品信息并按照名称升序排列.......................69

5.2.3按照姓氏笔画排序.............................................................................................71

【示例5-19】查询数据库表goods中的商品信息并按照名称的姓氏笔画升序排列

(SQLserver版).....................................................................................72

【示例5-20】查询数据库表goods中的商品信息并按照名称的姓氏笔画升序排列

(Oracle版)............................................................................................73

第6章多条件查询和模糊查询

6.1多个条件的匹配.......................................................................................................74

6.1.1传统的OR操作符..............................................................................................74

6.1.2使用IN解决问题...............................................................................................75

【示例6-1】查询数据库表goods中制造商是“公司A”或“公司B”的商品信息.....75

【示例6-2】查询数据库表goods中价格是45、56和77的商品信息.........................76

6.2操作符IN的主流用法.............................................................................................76

6.2.1在IN表达式中使用算术表达式........................................................................76

【示例6-3】查询数据库表goods中价格是45、60和77的商品信息

vi吃透SQL:从入门到实战(精讲视频版)

(使用算术表达式)...................................................................................76

6.2.2将列作为IN的选项值.......................................................................................77

【示例6-4】查询数据库表goods中价格是60或库存是60的商品信息.....................77

6.2.3使用NOTIN查询不满足多个条件的数据........................................................77

【示例6-5】查询数据库表goods中价格不是20、60或100的商品信息...................77

【示例6-6】查询数据库表goods中价格不是60或库存不是60的商品信息.............78

【示例6-7】查询数据库表goods中最后3条数据的信息............................................79

6.3使用通配符实现模糊查询.......................................................................................79

6.3.1操作符LIKE.......................................................................................................79

6.3.2使用通配符“%”..................................................................................................80

【示例6-8】查询数据库表goods中商品名称的开头包含“商”的商品信息.............80

【示例6-9】查询数据库表goods中商品名称的结尾包含“商”的商品信息.............81

【示例6-10】查询数据库表goods中商品名称包含“商”的商品信息.......................81

6.3.3使用通配符“_”...................................................................................................82

【示例6-11】查询数据库表goods中商品名称的第一个字符是“商”,并且后面

两个字符为任意值的商品信息................................................................82

【示例6-12】查询数据库表goods中商品名称有4个字符,并且第二个字符

是“商”,其他3个字符为任意值的商品信息.......................................83

6.3.4使用通配符“[]”................................................................................................83

【示例6-13】查询数据库表goods中商品名称以“商”或“固”开头的商品信息....84

【示例6-14】查询数据库表goods中商品名称以“商”或“7”结尾的商品信息........84

【示例6-15】查询数据库表goods中价格是以5到7结尾的商品信息.......................84

【示例6-16】查询数据库表goods中商品名称以字母“a-z”开头的商品信息...........85

6.3.5使用通配符“[^]”...............................................................................................86

【示例6-17】查询数据库表goods中商品名称不是以“商”或“7”开头的

商品信息..................................................................................................86

【示例6-18】查询数据库表goods中商品名称不是以字母“a-z”开头的

商品信息..................................................................................................86

第7章范围查找

7.1使用BETWEEN的语法格式..................................................................................88

【示例7-1】查询数据库表goods中商品价格在45~60的商品信息............................88

7.2排序某范围内的数据...............................................................................................89

【示例7-2】降序排列数据库表goods中商品价格在45~60的商品信息...................89

7.3查询不在某范围内的数据.......................................................................................90

【示例7-3】查询数据库表goods中商品价格不在45~60的商品信息.......................90

7.4BETWEEN的组合用法...........................................................................................91

目录vii

7.4.1BETWEEN和逻辑运算符的混合用法...............................................................91

【示例7-4】查询数据库表goods中销量在200~300并且价格在45~60的商品信息......91

【示例7-5】查询数据库表goods中销量在200~300或者价格在45~60的商品

信息............................................................................................................91

7.4.2BETWEEN和操作符IN的混合用法.................................................................92

【示例7-6】查询数据库表goods中价格在45~60并且制造商是“公司A”

或“公司B”的商品信息............................................................................92

【示例7-7】查询数据库表goods中制造商是“公司A”或“公司B”,或者价格

在45~60的商品信息...............................................................................92

7.4.3BETWEEN和操作符NOTIN的混合用法........................................................93

【示例7-8】查询数据库表goods中制造商不是“公司A”或“公司B”,并且价格

在45~60的商品信息...............................................................................93

7.4.4BETWEEN和通配符LIKE的混合用法............................................................94

【示例7-9】查询数据库表goods中商品名称的开头包含文字“商”,并且价格

在45~60的商品信息.............

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论