MySQL基礎教學
這個MySQL基礎教程解釋一些基本的SQL語句。 如果這是您第一次使用關係數據庫管理系統,本教程將爲您提供使用MySQL數據庫服務器所需的一切內容,例如查詢數據,更新數據,管理數據庫和創建表。
如果您已經熟悉其他關係數據庫管理系統(如PostgreSQL,Oracle或Microsoft SQL Server等),則可以使用本教程來刷新您的知識,並瞭解MySQL的SQL方言與其他數據庫系統的不同之處。
第1節. MySQL入門
本節將開始介紹和學習使用MySQL。我們將開始安裝MySQL,下載示例數據庫並將數據導入到MySQL服務器以進行練習。
安裝MySQL數據庫服務器 - 演示如何在計算機上安裝MySQL數據庫服務器。
下載MySQL示例數據庫 - 介紹一個名稱爲
yiibaidb
的MySQL示例數據庫,提供下載示例數據庫及ER圖。將示例數據庫導入到MySQL數據庫服務器中 - 演示如何將示例數據庫(
yiibaidb
)導入到MySQL數據庫服務器中進行練習。
第2節. 查詢數據
本節將幫助您瞭解如何從MySQL數據庫服務器查詢數據。 我們將從一個簡單的SELECT
語句開始,從單個表查詢數據。
- SELECT語句 - 顯示如何使用簡單的SELECT語句來查詢單個表中的數據。
- SELECT DISTINCT語句 - 瞭解如何在
SELECT
語句中使用DISTINCT
運算符來消除結果集中的重複行。
第3節. 過濾數據
- WHERE - 學習如何使用
WHERE
子句根據指定的條件過濾行記錄。 - AND運算符 - 介紹如何使用
AND
運算符以組合布爾表達式以形成用於過濾數據的複雜條件。 - OR運算符 - 介紹
OR
運算符,並展示如何將OR
運算符與AND
運算符組合以過濾數據。 - IN運算符 - 學習如何在
WHERE
子句中使用IN
運算符來確定值是否匹配列表或子查詢中的指定值。 - BETWEEN運算符 - 顯示如何使用
BETWEEN
運算符來根據指定範圍查詢數據。 - LIKE - 提供基於特定模式匹配查詢數據的技術示例,以執行一些模糊查詢。
- LIMIT子句 - 使用
LIMIT
來限制SELECT
語句返回的行數 - IS NULL - 使用
IS NULL
運算符測試值是否爲NULL
。
第4節. 排序數據
- ORDER BY - 顯示如何使用
ORDER BY
子句排序結果集。還將介紹使用FIELD
函數的自定義排序順序。 - 使用ORDER BY子句進行自然排序 - 通過使用
ORDER BY
子句,演示MySQL中的各種自然排序技術。
第5節. 連接表
- MySQL別名 - 引入別名,包括表別名和列別名,以提高複雜查詢的可讀性,並避免在查詢具有相同列名稱的多個表中的數據時發生歧義錯誤。
- INNER JOIN - 應用內部聯接技術來查詢來自多個相關表的數據。
- LEFT JOIN - 學習如何使用左連接來生成包含來自連接左側表中的行的結果集,並使用
NULL
值來補充不匹配行。 - CROSS JOIN - 學習如何使來自多個表的行的笛卡爾乘積。
- 自連接 – 使用表別名將表連接到自身,並使用其他類型的連接(如
INNER JOIN
或LEFT JOIN
)連接同一表中的行記錄。
第6節. 分組數據
- GROUP BY子句 - 學習如何根據列或表達式將行記錄分組到子組。
- HAVING子句 - 按特定條件過濾組。
第7節. MySQL子查詢,派生表和通用表達式
- MySQL子查詢 - 學習如何在另一個查詢(外部查詢)中嵌套另一個查詢語句(內部查詢),並使用內部查詢的結果值作爲外部查詢條件。
- MySQL派生表 - 介紹派生表概念,並演示如何使用它來簡化複雜查詢。
- MySQL通用表表達式 - 解釋通用表表達式概念,並向您展示如何使用CTE查詢表中的數據。
- 遞歸CTE - 演示如何使用遞歸通用表表達式(CTE)遍歷分層數據。
第8節. 使用SET操作符
- UNION和UNION ALL - 使用
UNION
和UNION ALL
操作符將兩個或多個多個SELECT
語句的結果集合合併到一個結果集中。 - INTERSECT模擬 - 顯示了幾種模擬MySQL中
INTERSECT
運算符的方法。
第9節. 修改MySQL中的數據
在本節中,將學習如何使用各種MySQL語句來在表上執行插入,更新和刪除數據操作。
- INSERT語句 - 學習如何使用各種形式的
INSERT
語句將數據插入到數據庫表中。 - INSERT IGNORE - 解釋將數據行插入到表中並忽略導致錯誤或異常的行的
INSERT IGNORE
語句。 - UPDATE語句 - 瞭解如何使用
UPDATE
語句及其選項來更新數據庫表中的數據。 - UPDATE JOIN語句 - 顯示如何使用帶有
INNER JOIN
和LEFT JOIN
的UPDATE JOIN
語句執行交叉表更新。 - DELETE - 學習如何使用
DELETE
語句從一個或多個表中刪除數據。 - ON DELETE CASCADE - 學習如何從父表中刪除數據時,使用外部鍵從
DELETE CASCADE
引用動作刪除子表中的數據。 - DELETE JOIN - 學習如何從多個表中刪除數據。
- REPLACE語句 - 學習如何插入或更新數據,這取決於數據是否存在於表中。
- PREPARE語句 - 顯示如何使用PREPARE語句執行查詢。
第10節. MySQL事務
- MySQL事務 - 瞭解MySQL事務,以及如何使用
COMMIT
和ROLLBACK
來管理MySQL中的事務。 - MySQL表鎖定 - 瞭解如何使用MySQL鎖來協調會話之間的表訪問。
第11節. 管理MySQL數據庫和表
本節介紹如何管理MySQL中最重要的數據庫對象,包括數據庫和表。
- MySQL數據庫管理 - 學習各種語句來管理MySQL數據庫,包括創建新數據庫,刪除現有數據庫,選擇數據庫以及列出所有數據庫。
- MySQL表類型 - 瞭解每個表類型的功能至關重要,以便您可以有效地使用它們來最大限度地提高數據庫的性能。
- CREATE TABLE - 學習如何使用
CREATE TABLE
語句在數據庫中創建新表。 - MySQL序列 - 學習如何使用序列爲表的主鍵列自動生成唯一的數字。
- ALTER TABLE - 學習如何使用
ALTER TABLE
語句來更改現有表的結構。 - 重命名錶 - 演示如何使用
RENAME TABLE
語句重命名錶。 - 從表中刪除列 - 學習如何使用
ALTER TABLE DROP COLUMN
語句從表中刪除一個或多個列。 - 向表中添加新列 - 學習如何使用
ALTER TABLE ADD COLUMN
語句向現有表添加一個或多個列。 - 刪除表 - 學習如何使用
DROP TABLE
語句刪除現有表。 - MySQL臨時表 - 討論MySQL臨時表,並學習如何管理臨時表。
- TRUNCATE TABLE - 學習如何使用
TRUNCATE TABLE
語句刪除表中的所有數據。
第12節. MySQL索引
- 管理MySQL數據庫索引 - 學習如何使用MySQL索引,以及如何利用索引來加快數據檢索。
- MySQL UNIQUE索引 - 顯示如何使用
UNIQUE
索引來強制一個或多個列的值的唯一性。
第13節. MySQL數據類型
- MySQL數據類型 - 學習MySQL中的各種數據類型,以便您可以在設計數據庫表時有效應用它們。
- INT - 學習如何使用整數數據類型。並演示如何使用
ZEROFILL
和整數列的寬度屬性。 - DECIMAL - 學習如何使用
DECIMAL
數據類型存儲十進制格式的精確值。 - BIT - 介紹
BIT
數據類型以及如何在MySQL中存儲位值。 - BOOLEAN - 學習MySQL如何通過內部使用
TINYINT(1)
來處理布爾值。 - CHAR - 學習如何使用存儲固定長度字符串的
CHAR
數據類型。 - VARCHAR - 提供
VARCHAR
數據類型的基本指南。 - TEXT - 演示如何使用
TEXT
數據類型存儲文本數據。 - DATE - 介紹DATE數據類型,並顯示一些日期功能來有效處理日期數據。
- TIME - 學習
TIME
數據類型的功能,並向您演示如何使用一些有用的時間功能來處理時間數據。 - DATETIME - 介紹
DATETIME
數據類型和一些有用的函數來操作日期時間值。 - TIMESTAMP - 介紹
TIMESTAMP
類型及其功能,調用自動初始化和自動更新,允許您爲表定義自動初始化和自動更新的列。 - JSON格式類型 - 顯示如何使用JSON數據類型來存儲JSON文檔。
- ENUM - 瞭解如何正確使用
ENUM
數據類型來存儲枚舉值。
第14節. MySQL約束
- NOT NULL約束 - 引入
NOT NULL
約束,並顯示如何爲列定義NOT NULL
約束或將NOT NULL
約束添加到現有列。 - 主鍵約束 - 指導如何使用主鍵約束來創建表的主鍵。
- 外鍵約束 - 學習外鍵概念,並逐步顯示如何創建和刪除外鍵。
- UNIQUE約束 - 顯示如何使用
UNIQUE
約束來強制表中列或一組列的值的唯一性。 - CHECK約束 - 通過各種方式來模擬MySQL中的
CHECK
約束。
第15節. MySQL全球化
- MySQL字符集 - 本教程討論MySQL字符集,並演示如何對字符集執行各種操作。
- MySQL排序規則 - 本教程討論了MySQL排序規則,並向您展示瞭如何爲MySQL服務器,數據庫,表和列設置字符集和排序規則。
第16節. MySQL導入和導出
- 將CSV文件導入MySQL表 - 演示如何使用
LOAD DATA INFILE
語句將CSV文件導入MySQL表。 - MySQL導出表到CSV - 學習如何將MySQL表導出爲CSV文件格式的各種技術。