本書是一部系統(tǒng)論述SQL編程語言的理論和實際應用技術的圖書,全書共分為12章,包括編寫第一個SQL程序、MySQL數據庫、MySQL表管理、視圖管理、索引管理、修改數據、查詢數據、匯總查詢結果、子查詢、表連接、MySQL中特有的SQL語句、MySQL數據庫開發(fā)。
另外,每章后面安排了動手練一練實踐環(huán)節(jié),旨在幫助讀者消化吸收本章知識點,并在本書附錄A中提供了參考答案。為便于讀者高效學習,快速掌握SQL,本書作者精心制作了完整的教學課件、源代碼與微課視頻,并提供在線答疑服務。本書適合零基礎入門的讀者,也可作為高等院校和培訓機構的教材。
本書是一部系統(tǒng)論述SQL編程語言和實際應用技術的圖書,全書共分為12章,每一章后面安排了動手實例實踐環(huán)節(jié),這個環(huán)節(jié)旨在幫助讀者夠消吸收化本章所講解的知識點,在本書附錄中提供了參考答案。本書作者精心制作了完整的教學課件、完整的源代碼與豐富的配套視頻教程以及在線答疑服務等內容。
為什么寫作本書
無論對于軟件開發(fā)人員,還是數據分析人士,抑或是從事數據處理的相關人員,SQL都非常重要,但目前市場上幫助初學者入門并進階的SQL圖書并不多。廣大讀者亟待有一本能夠快速入門的編程圖書。極簡開發(fā)者書庫秉承講解簡單、快速入門和易于掌握的原則,是為新手入門而設計的系列圖書之一。本書是其中講授SQL的圖書。
本書讀者對象
本書是一本SQL入門及進階讀物。無論讀者是計算機相關專業(yè)的大學生,還是從事軟件開發(fā)、數據分析和數據處理的人員,本書都適合閱讀。
相關資源
為了更好地為廣大讀者提供服務,本書提供了配套源代碼、教學課件、微課視頻和在線答疑服務。
如何使用書中配套源代碼
本書配套源代碼可以在清華大學出版社網站本書頁面下載。
致謝
感謝清華大學出版社的盛東亮編輯為本書提供寶貴意見。感謝智捷課堂團隊的趙志榮、趙大羽、關錦華、閆婷嬌、王馨然、關秀華和趙浩丞參與本書部分內容的寫作。感謝趙浩丞手繪書中全部草圖,并從專業(yè)的角度修改書中圖片,力求更加真實完美地奉獻給廣大讀者。感謝我的家人容忍我的忙碌,并給予我關心和照顧,使我能投入全部精力,專心編寫此書。
由于筆者水平有限,書中難免存在不足之處,懇請讀者提出寶貴意見,以便再版時改進。
關東升2023年9月于齊齊哈爾
關東升一個在IT領域摸爬滾打20多年的老程序員、知名培訓專家、暢銷書作家。精通多種IT技術。參與設計和開發(fā)北京市公交一卡通大型項目,開發(fā)國家農產品追溯系統(tǒng)、金融系統(tǒng)微博等移動客戶端項目,并在App Store發(fā)布多款游戲和應用軟件。 長期為中國移動、中國聯通、中國南方航空、中國石油、中國工商銀行、平安銀行和天津港務局等企事業(yè)單位提供培訓服務。先后出版了《iOS開發(fā)指南》《從零開始學Swift》《Cocos2d-x實戰(zhàn)》《Python從小白到大!贰禞ava從小白到大!贰禔ndroid從小白到大牛(Kotlin版)》等40多部圖書。
第1章編寫第一個SQL程序
微課視頻17分鐘
1.1SQLite數據庫
1.1.1安裝SQLite數據庫
1.1.2通過命令行訪問SQLite數據庫
1.2編寫Hello World程序代碼
1.3關系數據庫管理系統(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數據庫
微課視頻24分鐘
2.1MySQL概述
2.1.1MySQL的主要特點
2.1.2MySQL的主要版本
2.2MySQL數據庫安裝和配置
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配置連接數據庫
2.3.3管理數據庫
2.3.4管理表
2.3.5執(zhí)行SQL語句
2.4動手練一練
第3章MySQL表管理
微課視頻50分鐘
3.1關系模型的核心概念
3.1.1記錄和字段
3.1.2鍵
3.1.3約束條件
3.2管理數據庫
3.2.1創(chuàng)建數據庫
3.2.2刪除數據庫
3.2.3選擇數據庫
3.3創(chuàng)建表
3.4字段數據類型
3.4.1字符串數據
3.4.2數值數據
3.4.3日期和時間數據
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設置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用戶數據
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章修改數據
微課視頻38分鐘
6.1插入數據INSERT語句
6.2更改數據UPDATE語句
6.3刪除數據DELETE語句
6.4數據庫事務
6.4.1理解事務概念
6.4.2事務的特性
6.4.3事務的狀態(tài)
6.4.4事務控制
6.5動手練一練
第7章查詢數據
微課視頻23分鐘
7.1SELECT語句
7.1.1指定查詢字段
7.1.2指定字段順序
7.1.3選定所有字段
7.1.4為字段指定別名
7.1.5使用表達式
7.1.6使用算術運算符
7.2查詢結果排序ORDER BY子句
7.3篩選查詢結果WHERE子句
7.3.1比較運算符
7.3.2邏輯運算符
7.3.3IN運算符
7.3.4BETWEEN運算符
7.3.5LIKE運算符
7.3.6運算符優(yōu)先級
7.4動手練一練
第8章匯總查詢結果
微課視頻28分鐘
8.1聚合函數
8.1.1COUNT函數
8.1.2SUM函數
8.1.3AVG函數
8.1.4MIN函數和MAX函數
8.2分類匯總
8.2.1分組查詢GROUP BY子句
8.2.2使用HAVING子句篩選查詢結果
8.2.3使用DISTINCT運算符去除重復數據
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使用表連接重構查找銷售部的所有員工信息案例
10.1.2準備數據
10.2內連接
10.2.1內連接語法格式1
10.2.2內連接語法格式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日期相關數據類型
11.3限制返回行數
11.4常用函數
11.4.1數字型函數
11.4.2字符串函數
11.4.3日期和時間函數
11.5動手練一練
第12章MySQL數據庫開發(fā)
微課視頻30分鐘
12.1存儲過程
12.1.1使用存儲過程重構查找銷售部的所有員工信息案例
12.1.2調用存儲過程
12.1.3刪除存儲過程
12.2存儲過程參數
12.2.1IN參數
12.2.2OUT參數
12.2.3INOUT參數
12.3存儲函數
12.3.1創(chuàng)建存儲函數
12.3.2調用存儲函數
12.4動手練一練
附錄A動手練一練參考答案