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