前端寶庫

前端技術分享平台

0%

[筆記]_從零開始 邁向數據分析 SQL資料庫語法入門

紮穩 SQL 基礎, 循序養成大數據分析新技能
MySQL / MariaDB、MS SQL Server、Oracle、PostgreSQL、DB2 全適用!

建構SQL執行環境

資料庫與SQL

資料庫是什麼

#### 身邊隨處可見的資料庫
#### 為什麼需要 DBMS
#### DBMS 具有許多類型

資料庫的架構

#### 一般 RDBMS 的系統架構
#### 資料表的結構

SQL 基本概要

#### 標準 SQL
#### SQL 敘述與其分類
#### SQL 的基本撰寫規則

建立資料表

#### 資料表的內容
#### 建立資料庫 (Create Database 敘述)
#### 建立資料表 (Create Table 敘述)
#### 命名規則
#### 指定資料型別
#### 設定條件約束

刪除與修改資料表

#### 刪除資料表 (Drop Table 敘述)
#### 修改資料表結構 (Alter Table 敘述)
#### 新增資料至資料表

自我練習

查詢的基本語法

SELECT 敘述的基本語法

#### 輸出特定欄位資料
#### 輸出所有欄位資料
#### 替欄位取個別名
#### 輸出常數
#### 省略結果中重複的紀錄
#### 以 WHERE 子句篩選特定紀錄
#### 註解的寫法

算術運算子與比較運算子

#### 算術運算子
#### 請留意 NULL 的運算
#### 比較運算子
#### 對字串使用不等號的需注意事項
#### 不能對 NULL 使用比較運算子

邏輯運算子

#### NOT 運算子
#### AND 運算子與 OR 運算子
#### 加上括號的部分優先處理
#### 邏輯運算子與真偽值
#### 含有 NULL 時的真偽值

自我練習

彙總與排序

查詢時彙總資料

#### 彙總函數
#### 計算資料表的紀錄筆數
#### 計算 NULL 以外的紀錄筆數
#### 求得總計
#### 求得平均值
#### 求得最大、最小值
#### 排除重複值再使用彙總函數 (DISTINCT 關鍵字)

資料分群

#### GROUP BY 子句
#### 彙總鍵包含 NULL 的狀況
#### 使用 WHRER 子句時 GROUP BY 的作用
#### 彙總函數與 GROUP BY 子句的常見錯誤

對彙總結果指定條件

#### HAVING 子句
#### 可寫在 HAVING 子句的元素
#### 適合以 WHERE 子句取代 HAVING 子句的條件

查詢結果排序

#### ORDER BY 子句
#### 指定升幂或降幂
#### 指定多個排序鍵
#### NULL 的順序
#### 使用欄位別名指定排序鍵
#### ORDER BY 子句可使用的欄位
#### 請勿使用欄位編號

自我練習

更新資料

新增資料 (INSERT)

#### 什麼是 INSERT
#### INSERT 敘述的基本語法
#### 省略欄位串列
#### 存入 NULL
#### 存入預設值
#### 從其他資料表複製資料

刪除資料 (DELETE)

#### DROP TABLE 敘述與 DELETE 敘述
#### DELETE 敘述的基本語法
#### 刪除特定紀錄的 DELETE 敘述 (搜尋式 DELETE)

修改資料 (UPDATE)

#### UPDATE 的基本語法
#### 指定條件的 UPDATE 敘述 (搜尋式 UPDATE)
#### 將資料改為 NULL
#### 修改多個欄位的資料

交易功能

#### 什麼是交易功能
#### 如何設定交易功能
#### ACID 特性

自我練習

進階查詢功能

檢視表

#### 檢視表與資料表
#### 檢視表的建立方式
#### 檢視表的限制(1) 建立時不可使用 ORDER BY 子句
#### 檢視表的限制(2) 透過檢視表更新資料
#### 刪除檢視表

子查詢

#### 子查詢與檢視表
#### 子查詢的名稱
#### 純量子查詢
#### 可寫入純量子查詢的位置
#### 使用純量子查詢的需注意事項

關聯子查詢

#### 一般子查詢與關聯子查詢的差異
#### 關聯子查詢也能進行資料分群
#### 連結條件必須寫在子查詢內

自我練習

函數、述詞、Case 運算式

各式各樣的函數

#### 函數的類型
#### 數學函數
#### 字串函數
#### 日期函數
#### 轉換函數

述詞

#### 什麼是述詞
#### LIKE 述詞 - 搜尋相同的字串
#### BETWEEN - 範圍搜尋
#### IS NULL、IS NOT NULL - 判斷是否為 NULL
#### IN 述詞 - OR 的簡便形式
#### 指定子查詢做為 IN 述詞的參數
#### EXISTS 述詞

CASE 運算式

#### 什麼是 CASE 運算式
#### CASE 運算式的語法
#### CASE 運算式的使用方式

自我練習

集合運算 (合併查詢)

資料表的加法與減法運算

#### 什麼是集合運算
#### 資料表的加法運算 - UNION
#### 集合運算的注意事項
#### 列出重複紀錄的集合運算 - ALL選項
#### 篩選出資料表的共通部分 - INTERSECT
#### 紀錄的減法運算 - EXCEPT

結合 (聯結多個資料表欄位)

#### 什麼是結合
#### 內部結合 - INNER JOIN
#### 外部結合 - OUTER JOIN
#### 使用3個以上資料表的結合
#### 交叉結合 - CROSS JOIN

自我練習

SQL 進階處理功能

各式各樣的函數

#### 什麼是視窗函數
#### 視窗函數的語法
#### 基本使用方式 - 以 RANK 函數為例
#### 也可以不指定 PARTITION BY
#### 常用的視窗專用函數
#### 視窗函數應當寫在何處
#### 將彙總函數當作視窗函數使用
#### 計算移動平均
#### 2個 ORDER BY

GROUPING 運算子

#### 一併列出總計行
#### ROLLUP - 1次取得總計與小計
#### GROUPING 函數 - 分辨 NULL 的真偽
#### CUBE - 將資料堆疊成積木
#### GROUPING SETS - 只取出部分積木

自我練習

從應用程式連接資料庫

串聯資料庫和應用程式

#### 資料庫與應用程式的關係
#### 驅動程式 - 2個世界的橋樑
#### 驅動程式的種類

程式的基礎知識

#### 一如往例的 「Hello, World」
#### 編譯與執行程式
#### 常見的錯誤

利用程式連到 MariaDB

#### 執行 SQL 敘述的 Java 程式
#### Java 如何從資料庫取得資料
#### 執行連接至資料庫的程式
#### 嘗試篩選出資料表的資料
#### 嘗試修改資料表的資料
#### 小結

自我練習

/... 未完待續 .../