上篇教程我們介紹了 MySQL 的安裝以及如何在客戶端連接并管理 MySQL 數據庫,今天我們來簡單過一下日常常用的 SQL 語句,以 phpMyAdmin 作為 GUI 工具為例進行演示。
SQL 語句總體上分為三個部分:
- DDL(Data Definition Language,數據定義語言)
- DML(Data Manipulation Language,數據操作語言)
- DCL(Data Control Language,數據控制語言)
DDL
DDL 語句主要針對數據庫中的對象操作,這些對象包含數據庫、數據表、索引、列、視圖等,這些操作包含創建、刪除、重命名等。
新建數據庫
要創建一個數據庫可以通過 CREATE database 語句完成,不過編寫 SQL 語句過于繁瑣,GUI 工具都提供了按鈕進行對應可視化操作,更加方便,我們以 phpMyAdmin 為例,點擊左側面板中的「新建」,然后在右側面板表單中填寫數據庫名稱和編碼信息,最后點擊「創建」按鈕,即可創建一個新的數據庫:
如果通過 SQL 語句執行,對應的 SQL 語句是:
CREATE?DATABASE?`test`?DEFAULT?CHARACTER?SET?=?`utf8mb4`;
這里設置編碼為 utf8mb4 主要是為了支持中文字符以及 Emoji 表情符號的存儲。
數據庫重命名和刪除
對于已創建的數據庫,可以通過重命名數據庫修改數據庫名稱,還可以點擊刪除鏈接進行刪除,這些都位于選中指定數據庫后,右側面板頂部導航條「操作」面板中:
重命名其實就包含了刪除操作,再新建一個新的數據庫。
新建數據表
創建完數據庫之后,默認就會進入創建數據表界面,我們新建一個名為 post 的數據表,點擊右下角「執行」按鈕保存:
接下來,就進入了數據表字段(列)創建頁面,我們首先需要設置一個主鍵 ID 字段,當選擇索引為 PRIMARY(主鍵索引)時,會彈出創建索引窗口:
點擊「執行」創建該索引并關閉窗口,然后繼續設置字段信息:
目前就創建四個字段,如果要新增字段可以通過頂部數據表名右側的添加功能添加,這里我們需要區分下不同的字段類型,ID 字段一般是整型數字,所以類型設置為 int,文章標題一般是字符串,所以類型設置為 VARCHAR,文章內容是長文本,類型設置為 TEXT,最后 created_at 字段存儲創建時間,所以類型設置為 DATETIME。
在表結構選項中設置存儲引擎為 InnoDB,保存之前,可以通過「預覽 SQL 語句」按鈕預覽下創建 post 表的 SQL 語句:
然后點擊頁面右下角保存按鈕保存數據表設置,即可進入數據表結構頁面:
我們可以點擊每個字段對應的修改鏈接修改該字段,如果要對整張表進行修改,可以通過頂部「操作」導航完成(刪除和清空表也在這里完成,下拉到底部就可以看到對應的操作選項):
當然所有這些操作都可以通過對應的 SQL 語句完成,只是通過圖形化界面更直觀、更快捷。
數據表索引
關于數據表索引的類型、創建和維護我們在后面會結合實戰項目進行介紹,這里不單獨展開了。
DML
DML 語句主要針對數據表的增刪改查操作,即對數據表的 INSERT、delete、UPDATE、select 操作。
插入語句
新建數據表后,可以通過 INSERT INTO 插入數據,這里我們還可以通過 phpMyAdmin 演示,選中左側面板的 post 數據表,點擊右側「插入」頂部導航,在表單字段中填寫字段值,ID 是自增字段可以留空,最后點擊「執行」按鈕保存:
插入成功后,可以看到對應的 SQL 插入語句:
再點擊頂部「瀏覽」導航條,就可以看到插入的記錄了:
查詢語句
你也可以通過「SQL」導航進入 SQL 查詢面板通過 SELECT 語句進行查詢:
不指定查詢條件默認返回所有查詢結果,你也可以通過 WHERE 子句指定查詢條件返回特定結果:
SELECT?*?FROM?`post`?WHERE?id?=?1;
還可以指定要查詢的字段:
SELECT?id,?title,?content?FROM?`post`;
另外,還可以通過 ORDER BY 語句對查詢結果進行排序:
SELECT?*?FROM?`post`?ORDER?BY?id?DESC;
更新語句
我們可以通過「瀏覽」界面每一條記錄左側的「編輯」功能修改每條記錄的字段值:
也可以在「SQL」界面通過 UPDATE 語句進行更加復雜的自定義修改,點擊「UPDATE」按鈕,會在輸入框填充更新語句模板,按需進行填寫即可:
點擊「執行」按鈕進行更新,就可以看到修改后的字段值了,在進行 UPDATE 更新時,需要特別關注 WHERE 子句,因為如果沒有設置 WHERE 條件,會更新整張表。
刪除語句
要刪除單條記錄,可以通過「瀏覽」界面記錄左側的刪除按鈕刪除,也可以在「SQL」面板通過 DELETE 語句進行更加復雜的自定義刪除操作:
和 UPDATE 一樣,如果沒有通過 WEHRE 子句設置刪除條件,也會刪除整張表記錄,所以在執行刪除操作前需要格外注意。
要清空整張表記錄,并將自增 ID 重置為 1,需要在「操作」面板通過 TRUNCATE 操作完成: