一、什麼是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支持事務回滾。

七、總結與注意事項

  1. WHERE條件是核心
    UPDATEDELETESELECT(篩選)都必須加WHERE,否則會操作全表數據,造成數據丟失!

  2. 字符串與引號
    所有字符串類型的值(如姓名、班級)必須用單引號'包裹,如'小明'

  3. 自增主鍵
    id字段爲自增主鍵,插入時無需手動賦值,用NULL或省略即可。

  4. 多練習
    嘗試在MySQL客戶端執行上述示例,觀察結果,熟悉語法規則。

CRUD是MySQL的基礎操作,掌握它們就能完成大部分數據庫交互需求。後續可學習更復雜的查詢(如JOIN連接)、事務等,爲進階打下基礎!

小夜