本書是一部系統(tǒng)論述SQL編程語言的理論和實際應(yīng)用技術(shù)的圖書,全書共分為12章,包括編寫第一個SQL程序、MySQL數(shù)據(jù)庫、MySQL表管理、視圖管理、索引管理、修改數(shù)據(jù)、查詢數(shù)據(jù)、匯總查詢結(jié)果、子查詢、表連接、MySQL中特有的SQL語句、MySQL數(shù)據(jù)庫開發(fā)。
另外,每章后面安排了動手練一練實踐環(huán)節(jié),旨在幫助讀者消化吸收本章知識點,并在本書附錄A中提供了參考答案。為便于讀者高效學習,快速掌握SQL,本書作者精心制作了完整的教學課件、源代碼與微課視頻,并提供在線答疑服務(wù)。本書適合零基礎(chǔ)入門的讀者,也可作為高等院校和培訓機構(gòu)的教材。
為什么寫作本書
無論對于軟件開發(fā)人員,還是數(shù)據(jù)分析人士,抑或是從事數(shù)據(jù)處理的相關(guān)人員,SQL都非常重要,但目前市場上幫助初學者入門并進階的SQL圖書并不多。廣大讀者亟待有一本能夠快速入門的編程圖書。極簡開發(fā)者書庫秉承講解簡單、快速入門和易于掌握的原則,是為新手入門而設(shè)計的系列圖書之一。本書是其中講授SQL的圖書。
本書讀者對象
本書是一本SQL入門及進階讀物。無論讀者是計算機相關(guān)專業(yè)的大學生,還是從事軟件開發(fā)、數(shù)據(jù)分析和數(shù)據(jù)處理的人員,本書都適合閱讀。
相關(guān)資源
為了更好地為廣大讀者提供服務(wù),本書提供了配套源代碼、教學課件、微課視頻和在線答疑服務(wù)。
如何使用書中配套源代碼
本書配套源代碼可以在清華大學出版社網(wǎng)站本書頁面下載。
致謝
感謝清華大學出版社的盛東亮編輯為本書提供寶貴意見。感謝智捷課堂團隊的趙志榮、趙大羽、關(guān)錦華、閆婷嬌、王馨然、關(guān)秀華和趙浩丞參與本書部分內(nèi)容的寫作。感謝趙浩丞手繪書中全部草圖,并從專業(yè)的角度修改書中圖片,力求更加真實完美地奉獻給廣大讀者。感謝我的家人容忍我的忙碌,并給予我關(guān)心和照顧,使我能投入全部精力,專心編寫此書。
由于筆者水平有限,書中難免存在不足之處,懇請讀者提出寶貴意見,以便再版時改進。
關(guān)東升2023年9月于齊齊哈爾
第1章編寫第一個SQL程序
微課視頻17分鐘
1.1SQLite數(shù)據(jù)庫
1.1.1安裝SQLite數(shù)據(jù)庫
1.1.2通過命令行訪問SQLite數(shù)據(jù)庫
1.2編寫Hello World程序代碼
1.3關(guān)系數(shù)據(jù)庫管理系統(tǒng)
1.3.1Oracle
1.3.2SQL Server
1.3.3DB 2
1.3.4MySQL
1.4SQL概述
1.4.1SQL標準
1.4.2SQL句法
1.5動手練一練
第2章MySQL數(shù)據(jù)庫
微課視頻24分鐘
2.1MySQL概述
2.1.1MySQL的主要特點
2.1.2MySQL的主要版本
2.2MySQL數(shù)據(jù)庫安裝和配置
2.2.1在Windows平臺安裝MySQL
2.2.2在Linux平臺安裝MySQL
2.2.3在macOS平臺安裝MySQL
2.3圖形界面客戶端工具
2.3.1下載和安裝MySQL Workbench工具
2.3.2配置連接數(shù)據(jù)庫
2.3.3管理數(shù)據(jù)庫
2.3.4管理表
2.3.5執(zhí)行SQL語句
2.4動手練一練
第3章MySQL表管理
微課視頻50分鐘
3.1關(guān)系模型的核心概念
3.1.1記錄和字段
3.1.2鍵
3.1.3約束條件
3.2管理數(shù)據(jù)庫
3.2.1創(chuàng)建數(shù)據(jù)庫
3.2.2刪除數(shù)據(jù)庫
3.2.3選擇數(shù)據(jù)庫
3.3創(chuàng)建表
3.4字段數(shù)據(jù)類型
3.4.1字符串數(shù)據(jù)
3.4.2數(shù)值數(shù)據(jù)
3.4.3日期和時間數(shù)據(jù)
3.4.4大型對象
3.5指定鍵
3.5.1指定候選鍵
3.5.2指定主鍵
3.5.3指定外鍵
3.6其他約束
3.6.1指定默認值
3.6.2禁止空值
3.6.3設(shè)置CHECK約束
3.7修改表
3.7.1修改表名
3.7.2添加字段
3.7.3刪除字段
3.8刪除表
3.9動手練一練
第4章視圖管理
微課視頻13分鐘
4.1視圖概念
4.2創(chuàng)建視圖
4.2.1案例準備: Oracle自帶示例SCOTT用戶數(shù)據(jù)
4.2.2提出問題
4.2.3解決問題
4.3修改視圖
4.4刪除視圖
4.5動手練一練
第5章索引管理
微課視頻15分鐘
5.1創(chuàng)建索引
5.1.1創(chuàng)建多字段組合索引
5.1.2創(chuàng)建唯一索引
5.2刪除索引
5.3使用索引的最佳實踐
5.4動手練一練
第6章修改數(shù)據(jù)
微課視頻38分鐘
6.1插入數(shù)據(jù)INSERT語句
6.2更改數(shù)據(jù)UPDATE語句
6.3刪除數(shù)據(jù)DELETE語句
6.4數(shù)據(jù)庫事務(wù)
6.4.1理解事務(wù)概念
6.4.2事務(wù)的特性
6.4.3事務(wù)的狀態(tài)
6.4.4事務(wù)控制
6.5動手練一練
第7章查詢數(shù)據(jù)
微課視頻23分鐘
7.1SELECT語句
7.1.1指定查詢字段
7.1.2指定字段順序
7.1.3選定所有字段
7.1.4為字段指定別名
7.1.5使用表達式
7.1.6使用算術(shù)運算符
7.2查詢結(jié)果排序ORDER BY子句
7.3篩選查詢結(jié)果WHERE子句
7.3.1比較運算符
7.3.2邏輯運算符
7.3.3IN運算符
7.3.4BETWEEN運算符
7.3.5LIKE運算符
7.3.6運算符優(yōu)先級
7.4動手練一練
第8章匯總查詢結(jié)果
微課視頻28分鐘
8.1聚合函數(shù)
8.1.1COUNT函數(shù)
8.1.2SUM函數(shù)
8.1.3AVG函數(shù)
8.1.4MIN函數(shù)和MAX函數(shù)
8.2分類匯總
8.2.1分組查詢GROUP BY子句
8.2.2使用HAVING子句篩選查詢結(jié)果
8.2.3使用DISTINCT運算符去除重復(fù)數(shù)據(jù)
8.3動手練一練
第9章子查詢
微課視頻33分鐘
9.1子查詢的概念
9.1.1從一個案例引出的思考
9.1.2使用子查詢解決問題
9.2單行子查詢
9.2.1示例: 查找所有工資超過平均工資水平的員工信息
9.2.2示例: 查找工資最高的員工信息
9.2.3示例: 查找與SMITH職位相同的員工信息
9.2.4示例: 查找誰的工資超過了工資最高的銷售人員
9.2.5示例: 查找職位與CLARK相同,且工資超過CLARK的
員工信息
9.2.6示例: 查找資格最老的員工信息
9.2.7示例: 查找EMP表中第2高的工資
9.3多行子查詢
9.3.1示例: 查找銷售部的所有員工信息
9.3.2示例: 查找與SMITH或CLARK職位不同的所有員工信息
9.4嵌套子查詢
9.4.1示例: 查找工資超過平均工資的員工所在的部門
9.4.2示例: 查找EMP表中工資第3高的員工信息
9.5在DML中使用子查詢
9.5.1在DELETE語句中使用子查詢
9.5.2示例: 刪除部門所在地為紐約的所有員工信息
9.6動手練一練
第10章表連接
微課視頻30分鐘
10.1表連接的概念
10.1.1使用表連接重構(gòu)查找銷售部的所有員工信息案例
10.1.2準備數(shù)據(jù)
10.2內(nèi)連接
10.2.1內(nèi)連接語法格式1
10.2.2內(nèi)連接語法格式2
10.2.3查找部門在紐約的所有員工姓名
10.3左連接
10.3.1左連接語法格式
10.3.2示例: EMP表與DEPT表的左連接查詢
10.4右連接
10.4.1右連接語法格式
10.4.2示例: EMP表與DEPT表的右連接查詢
10.5全連接
10.6交叉連接
10.6.1交叉連接語法格式1
10.6.2交叉連接語法格式2
10.7動手練一練
第11章MySQL中特有的SQL語句
微課視頻26分鐘
11.1自增長字段
11.2MySQL日期相關(guān)數(shù)據(jù)類型
11.3限制返回行數(shù)
11.4常用函數(shù)
11.4.1數(shù)字型函數(shù)
11.4.2字符串函數(shù)
11.4.3日期和時間函數(shù)
11.5動手練一練
第12章MySQL數(shù)據(jù)庫開發(fā)
微課視頻30分鐘
12.1存儲過程
12.1.1使用存儲過程重構(gòu)查找銷售部的所有員工信息案例
12.1.2調(diào)用存儲過程
12.1.3刪除存儲過程
12.2存儲過程參數(shù)
12.2.1IN參數(shù)
12.2.2OUT參數(shù)
12.2.3INOUT參數(shù)
12.3存儲函數(shù)
12.3.1創(chuàng)建存儲函數(shù)
12.3.2調(diào)用存儲函數(shù)
12.4動手練一練
附錄A動手練一練參考答案