一、什麼是CRUD?¶
在MySQL中,CRUD是四個基礎操作的縮寫,分別對應數據庫中數據的四種核心操作:
- Create(創建):向數據庫插入新數據
- Read(讀取):從數據庫查詢已有數據
- Update(更新):修改數據庫中已有的數據
- Delete(刪除):從數據庫中移除數據
這些操作是使用MySQL進行數據管理的基礎,掌握它們就能輕鬆實現數據的增刪改查。
二、準備工作:創建測試表和數據¶
在開始操作前,我們先創建一個簡單的表和測試數據,方便後續演示。打開MySQL客戶端(如Navicat、SQLyog或命令行),執行以下SQL語句:
-- 創建學生表
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增主鍵(唯一標識)
name VARCHAR(50) NOT NULL, -- 學生姓名(不能爲空)
age INT, -- 年齡
class VARCHAR(20) -- 班級
);
-- 插入測試數據
INSERT INTO students (name, age, class) VALUES
('小明', 18, '一班'),
('小紅', 19, '二班'),
('小剛', 17, '一班'),
('小麗', 20, '三班');
現在表中已有4條數據,後續所有操作都基於這個表。
三、Create(創建數據):INSERT語句¶
作用:向表中添加新的記錄。
語法格式:¶
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
示例1:插入單條數據¶
向students表中插入一名新學生“小強”,年齡16,班級“二班”:
INSERT INTO students (name, age, class)
VALUES ('小強', 16, '二班');
注意:
- 字段列表和值列表必須一一對應(順序、類型一致)。
- 若插入所有字段,可省略字段列表(但需確保值的順序與表定義一致):
INSERT INTO students VALUES (NULL, '小芳', 15, '四班');
(id爲自增主鍵,用NULL自動生成)。
- 字符串類型的值需用單引號包裹,數值類型直接寫數字。
示例2:批量插入數據¶
一次插入多條記錄:
INSERT INTO students (name, age, class)
VALUES
('小華', 17, '一班'),
('小亮', 18, '二班');
四、Read(讀取數據):SELECT語句¶
作用:從表中查詢數據,是最常用的操作。
基礎語法:¶
SELECT 字段1, 字段2, ... FROM 表名;
示例1:查詢所有數據¶
查詢students表中所有學生的信息:
SELECT * FROM students; -- * 表示查詢所有字段
示例2:條件查詢¶
- 篩選年齡大於18歲的學生:
SELECT name, age FROM students WHERE age > 18;
- 按班級篩選(精確匹配):
SELECT * FROM students WHERE class = '一班';
- 多條件組合(年齡>17且班級=二班):
SELECT * FROM students WHERE age > 17 AND class = '二班';
示例3:排序和限制結果¶
- 按年齡降序排序(從大到小),取前2條:
SELECT * FROM students ORDER BY age DESC LIMIT 2;
- 按班級升序排序,按姓名去重:
SELECT DISTINCT class, name FROM students ORDER BY class ASC;
示例4:模糊查詢¶
- 查詢名字包含“小”的學生:
SELECT * FROM students WHERE name LIKE '%小%';
(%代表任意多個字符,_代表單個字符)
五、Update(更新數據):UPDATE語句¶
作用:修改表中已存在的記錄。
語法格式:¶
UPDATE 表名 SET 字段1=值1, 字段2=值2, ... WHERE 條件;
關鍵:必須加
WHERE條件!否則會更新表中所有記錄!
示例1:更新單個字段¶
將“小剛”的年齡改爲18歲:
UPDATE students
SET age = 18
WHERE name = '小剛';
示例2:更新多個字段¶
將“小麗”的年齡改爲21歲,班級改爲“四班”:
UPDATE students
SET age = 21, class = '四班'
WHERE name = '小麗';
六、Delete(刪除數據):DELETE語句¶
作用:從表中移除記錄。
語法格式:¶
DELETE FROM 表名 WHERE 條件;
關鍵:必須加
WHERE條件!否則會刪除全表數據!
示例1:刪除符合條件的記錄¶
刪除年齡小於16歲的學生(若存在):
DELETE FROM students
WHERE age < 16;
示例2:刪除所有數據(謹慎!)¶
若需清空表,可使用WHERE條件全表匹配(需確保安全):
DELETE FROM students WHERE 1=1; -- 等價於DELETE FROM students;
注意:
- 若需快速清空表結構,可使用TRUNCATE TABLE students;(但此操作不可逆,且不支持WHERE條件)。
-DELETE是行級刪除,TRUNCATE是表級重建,性能差異較小,但DELETE支持事務回滾。
七、總結與注意事項¶
-
WHERE條件是核心:
UPDATE、DELETE、SELECT(篩選)都必須加WHERE,否則會操作全表數據,造成數據丟失! -
字符串與引號:
所有字符串類型的值(如姓名、班級)必須用單引號'包裹,如'小明'。 -
自增主鍵:
id字段爲自增主鍵,插入時無需手動賦值,用NULL或省略即可。 -
多練習:
嘗試在MySQL客戶端執行上述示例,觀察結果,熟悉語法規則。
CRUD是MySQL的基礎操作,掌握它們就能完成大部分數據庫交互需求。後續可學習更復雜的查詢(如JOIN連接)、事務等,爲進階打下基礎!