這個MySQL基礎(chǔ)教程解釋一些基本的SQL語句愚屁。 如果這是您第一次使用關(guān)系數(shù)據(jù)庫管理系統(tǒng)拣挪,本教程將為您提供使用MySQL數(shù)據(jù)庫服務(wù)器所需的一切內(nèi)容逼庞,例如查詢數(shù)據(jù)克蚂,更新數(shù)據(jù)闺鲸,管理數(shù)據(jù)庫和創(chuàng)建表筋讨。
如果您已經(jīng)熟悉其他關(guān)系數(shù)據(jù)庫管理系統(tǒng)(如PostgreSQL埃叭,Oracle或Microsoft SQL Server等),則可以使用本教程來刷新您的知識悉罕,并了解MySQL的SQL方言與其他數(shù)據(jù)庫系統(tǒng)的不同之處赤屋。
第1節(jié). MySQL入門
本節(jié)將開始介紹和學(xué)習(xí)使用MySQL。我們將開始安裝MySQL壁袄,下載示例數(shù)據(jù)庫并將數(shù)據(jù)導(dǎo)入到MySQL服務(wù)器以進(jìn)行練習(xí)。
安裝MySQL數(shù)據(jù)庫服務(wù)器 - 演示如何在計算機上安裝MySQL數(shù)據(jù)庫服務(wù)器。
下載MySQL示例數(shù)據(jù)庫 - 介紹一個名稱為
yiibaidb
的MySQL示例數(shù)據(jù)庫触徐,提供下載示例數(shù)據(jù)庫及ER圖皿伺。將示例數(shù)據(jù)庫導(dǎo)入到MySQL數(shù)據(jù)庫服務(wù)器中 - 演示如何將示例數(shù)據(jù)庫(
yiibaidb
)導(dǎo)入到MySQL數(shù)據(jù)庫服務(wù)器中進(jìn)行練習(xí)。
第2節(jié). 查詢數(shù)據(jù)
本節(jié)將幫助您了解如何從MySQL數(shù)據(jù)庫服務(wù)器查詢數(shù)據(jù)栈顷。 我們將從一個簡單的SELECT
語句開始逆日,從單個表查詢數(shù)據(jù)。
- SELECT語句 - 顯示如何使用簡單的SELECT語句來查詢單個表中的數(shù)據(jù)萄凤。
-
SELECT DISTINCT語句 - 了解如何在
SELECT
語句中使用DISTINCT
運算符來消除結(jié)果集中的重復(fù)行室抽。
第3節(jié). 過濾數(shù)據(jù)
-
WHERE - 學(xué)習(xí)如何使用
WHERE
子句根據(jù)指定的條件過濾行記錄。 -
AND運算符 - 介紹如何使用
AND
運算符以組合布爾表達(dá)式以形成用于過濾數(shù)據(jù)的復(fù)雜條件靡努。 -
OR運算符 - 介紹
OR
運算符坪圾,并展示如何將OR
運算符與AND
運算符組合以過濾數(shù)據(jù)。 -
IN運算符 - 學(xué)習(xí)如何在
WHERE
子句中使用IN
運算符來確定值是否匹配列表或子查詢中的指定值惑朦。 -
BETWEEN運算符 - 顯示如何使用
BETWEEN
運算符來根據(jù)指定范圍查詢數(shù)據(jù)兽泄。 - LIKE - 提供基于特定模式匹配查詢數(shù)據(jù)的技術(shù)示例,以執(zhí)行一些模糊查詢漾月。
-
LIMIT子句 - 使用
LIMIT
來限制SELECT
語句返回的行數(shù) -
IS NULL - 使用
IS NULL
運算符測試值是否為NULL
病梢。
第4節(jié). 排序數(shù)據(jù)
-
ORDER BY - 顯示如何使用
ORDER BY
子句排序結(jié)果集。還將介紹使用FIELD
函數(shù)的自定義排序順序栅屏。 -
使用ORDER BY子句進(jìn)行自然排序 - 通過使用
ORDER BY
子句飘千,演示MySQL中的各種自然排序技術(shù)。
第5節(jié). 連接表
- MySQL別名 - 引入別名栈雳,包括表別名和列別名护奈,以提高復(fù)雜查詢的可讀性,并避免在查詢具有相同列名稱的多個表中的數(shù)據(jù)時發(fā)生歧義錯誤哥纫。
- INNER JOIN - 應(yīng)用內(nèi)部聯(lián)接技術(shù)來查詢來自多個相關(guān)表的數(shù)據(jù)霉旗。
-
LEFT JOIN - 學(xué)習(xí)如何使用左連接來生成包含來自連接左側(cè)表中的行的結(jié)果集,并使用
NULL
值來補充不匹配行。 - CROSS JOIN - 學(xué)習(xí)如何使來自多個表的行的笛卡爾乘積厌秒。
-
自連接 – 使用表別名將表連接到自身读拆,并使用其他類型的連接(如
INNER JOIN
或LEFT JOIN
)連接同一表中的行記錄。
第6節(jié). 分組數(shù)據(jù)
- GROUP BY子句 - 學(xué)習(xí)如何根據(jù)列或表達(dá)式將行記錄分組到子組鸵闪。
- HAVING子句 - 按特定條件過濾組檐晕。
第7節(jié). MySQL子查詢,派生表和通用表達(dá)式
- MySQL子查詢 - 學(xué)習(xí)如何在另一個查詢(外部查詢)中嵌套另一個查詢語句(內(nèi)部查詢)蚌讼,并使用內(nèi)部查詢的結(jié)果值作為外部查詢條件辟灰。
- MySQL派生表 - 介紹派生表概念,并演示如何使用它來簡化復(fù)雜查詢篡石。
- MySQL通用表表達(dá)式 - 解釋通用表表達(dá)式概念芥喇,并向您展示如何使用CTE查詢表中的數(shù)據(jù)。
- 遞歸CTE - 演示如何使用遞歸通用表表達(dá)式(CTE)遍歷分層數(shù)據(jù)凰萨。
第8節(jié). 使用SET操作符
-
UNION和UNION ALL - 使用
UNION
和UNION ALL
操作符將兩個或多個多個SELECT
語句的結(jié)果集合合并到一個結(jié)果集中继控。 -
INTERSECT模擬 - 顯示了幾種模擬MySQL中
INTERSECT
運算符的方法。
第9節(jié). 修改MySQL中的數(shù)據(jù)
在本節(jié)中胖眷,將學(xué)習(xí)如何使用各種MySQL語句來在表上執(zhí)行插入武通,更新和刪除數(shù)據(jù)操作。
-
INSERT語句 - 學(xué)習(xí)如何使用各種形式的
INSERT
語句將數(shù)據(jù)插入到數(shù)據(jù)庫表中瘦材。 -
INSERT IGNORE - 解釋將數(shù)據(jù)行插入到表中并忽略導(dǎo)致錯誤或異常的行的
INSERT IGNORE
語句厅须。 -
UPDATE語句 - 了解如何使用
UPDATE
語句及其選項來更新數(shù)據(jù)庫表中的數(shù)據(jù)。 -
UPDATE JOIN語句 - 顯示如何使用帶有
INNER JOIN
和LEFT JOIN
的UPDATE JOIN
語句執(zhí)行交叉表更新食棕。 -
DELETE - 學(xué)習(xí)如何使用
DELETE
語句從一個或多個表中刪除數(shù)據(jù)朗和。 -
ON DELETE CASCADE - 學(xué)習(xí)如何從父表中刪除數(shù)據(jù)時,使用外部鍵從
DELETE CASCADE
引用動作刪除子表中的數(shù)據(jù)簿晓。 - DELETE JOIN - 學(xué)習(xí)如何從多個表中刪除數(shù)據(jù)眶拉。
- REPLACE語句 - 學(xué)習(xí)如何插入或更新數(shù)據(jù),這取決于數(shù)據(jù)是否存在于表中憔儿。
- PREPARE語句 - 顯示如何使用PREPARE語句執(zhí)行查詢忆植。
第10節(jié). MySQL事務(wù)
-
MySQL事務(wù) - 了解MySQL事務(wù),以及如何使用
COMMIT
和ROLLBACK
來管理MySQL中的事務(wù)谒臼。 - MySQL表鎖定 - 了解如何使用MySQL鎖來協(xié)調(diào)會話之間的表訪問朝刊。
第11節(jié). 管理MySQL數(shù)據(jù)庫和表
本節(jié)介紹如何管理MySQL中最重要的數(shù)據(jù)庫對象,包括數(shù)據(jù)庫和表蜈缤。
- MySQL數(shù)據(jù)庫管理 - 學(xué)習(xí)各種語句來管理MySQL數(shù)據(jù)庫拾氓,包括創(chuàng)建新數(shù)據(jù)庫,刪除現(xiàn)有數(shù)據(jù)庫底哥,選擇數(shù)據(jù)庫以及列出所有數(shù)據(jù)庫咙鞍。
- MySQL表類型 - 了解每個表類型的功能至關(guān)重要房官,以便您可以有效地使用它們來最大限度地提高數(shù)據(jù)庫的性能。
-
CREATE TABLE - 學(xué)習(xí)如何使用
CREATE TABLE
語句在數(shù)據(jù)庫中創(chuàng)建新表续滋。 - MySQL序列 - 學(xué)習(xí)如何使用序列為表的主鍵列自動生成唯一的數(shù)字翰守。
-
ALTER TABLE - 學(xué)習(xí)如何使用
ALTER TABLE
語句來更改現(xiàn)有表的結(jié)構(gòu)。 -
重命名表 - 演示如何使用
RENAME TABLE
語句重命名表疲酌。 -
從表中刪除列 - 學(xué)習(xí)如何使用
ALTER TABLE DROP COLUMN
語句從表中刪除一個或多個列蜡峰。 -
向表中添加新列 - 學(xué)習(xí)如何使用
ALTER TABLE ADD COLUMN
語句向現(xiàn)有表添加一個或多個列。 -
刪除表 - 學(xué)習(xí)如何使用
DROP TABLE
語句刪除現(xiàn)有表徐勃。 - MySQL臨時表 - 討論MySQL臨時表事示,并學(xué)習(xí)如何管理臨時表早像。
-
TRUNCATE TABLE - 學(xué)習(xí)如何使用
TRUNCATE TABLE
語句刪除表中的所有數(shù)據(jù)僻肖。
第12節(jié). MySQL索引
- 管理MySQL數(shù)據(jù)庫索引 - 學(xué)習(xí)如何使用MySQL索引,以及如何利用索引來加快數(shù)據(jù)檢索卢鹦。
-
MySQL UNIQUE索引 - 顯示如何使用
UNIQUE
索引來強制一個或多個列的值的唯一性臀脏。
第13節(jié). MySQL數(shù)據(jù)類型
- MySQL數(shù)據(jù)類型 - 學(xué)習(xí)MySQL中的各種數(shù)據(jù)類型,以便您可以在設(shè)計數(shù)據(jù)庫表時有效應(yīng)用它們冀自。
-
INT - 學(xué)習(xí)如何使用整數(shù)數(shù)據(jù)類型揉稚。并演示如何使用
ZEROFILL
和整數(shù)列的寬度屬性。 -
DECIMAL - 學(xué)習(xí)如何使用
DECIMAL
數(shù)據(jù)類型存儲十進(jìn)制格式的精確值熬粗。 -
BIT - 介紹
BIT
數(shù)據(jù)類型以及如何在MySQL中存儲位值搀玖。 -
BOOLEAN - 學(xué)習(xí)MySQL如何通過內(nèi)部使用
TINYINT(1)
來處理布爾值。 -
CHAR - 學(xué)習(xí)如何使用存儲固定長度字符串的
CHAR
數(shù)據(jù)類型驻呐。 -
VARCHAR - 提供
VARCHAR
數(shù)據(jù)類型的基本指南灌诅。 -
TEXT - 演示如何使用
TEXT
數(shù)據(jù)類型存儲文本數(shù)據(jù)。 - DATE - 介紹DATE數(shù)據(jù)類型含末,并顯示一些日期功能來有效處理日期數(shù)據(jù)猜拾。
-
TIME - 學(xué)習(xí)
TIME
數(shù)據(jù)類型的功能,并向您演示如何使用一些有用的時間功能來處理時間數(shù)據(jù)佣盒。 -
DATETIME - 介紹
DATETIME
數(shù)據(jù)類型和一些有用的函數(shù)來操作日期時間值挎袜。 -
TIMESTAMP - 介紹
TIMESTAMP
類型及其功能,調(diào)用自動初始化和自動更新肥惭,允許您為表定義自動初始化和自動更新的列盯仪。 - JSON格式類型 - 顯示如何使用JSON數(shù)據(jù)類型來存儲JSON文檔。
-
ENUM - 了解如何正確使用
ENUM
數(shù)據(jù)類型來存儲枚舉值蜜葱。
第14節(jié). MySQL約束
-
NOT NULL約束 - 引入
NOT NULL
約束全景,并顯示如何為列定義NOT NULL
約束或?qū)?code>NOT NULL約束添加到現(xiàn)有列。 - 主鍵約束 - 指導(dǎo)如何使用主鍵約束來創(chuàng)建表的主鍵笼沥。
- 外鍵約束 - 學(xué)習(xí)外鍵概念蚪燕,并逐步顯示如何創(chuàng)建和刪除外鍵娶牌。
-
UNIQUE約束 - 顯示如何使用
UNIQUE
約束來強制表中列或一組列的值的唯一性。 -
CHECK約束 - 通過各種方式來模擬MySQL中的
CHECK
約束馆纳。
第15節(jié). MySQL全球化
- MySQL字符集 - 本教程討論MySQL字符集诗良,并演示如何對字符集執(zhí)行各種操作。
- MySQL排序規(guī)則 - 本教程討論了MySQL排序規(guī)則鲁驶,并向您展示了如何為MySQL服務(wù)器鉴裹,數(shù)據(jù)庫,表和列設(shè)置字符集和排序規(guī)則钥弯。
第16節(jié). MySQL導(dǎo)入和導(dǎo)出
-
將CSV文件導(dǎo)入MySQL表 - 演示如何使用
LOAD DATA INFILE
語句將CSV文件導(dǎo)入MySQL表径荔。 - MySQL導(dǎo)出表到CSV - 學(xué)習(xí)如何將MySQL表導(dǎo)出為CSV文件格式的各種技術(shù)。