好的!SQL(Structured Query Language)是用于管理關系型數據庫的標準語言。讓我們從最基礎的增刪改查(CRUD)?? 操作開始學習,我會用簡單易懂的方式講解每個操作。
🛠 準備工作(建表)
在開始之前,我們創建一個簡單的學生表(student)
作為示例:
CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT, -- 學號(主鍵,自增長)name VARCHAR(50) NOT NULL, -- 姓名(非空)age INT, -- 年齡gender ENUM('男', '女'), -- 性別class VARCHAR(20) -- 班級
);
🔍 一、查(SELECT) - 讀取數據
?語法:??
SELECT 列名 FROM 表名 [WHERE 條件] [ORDER BY 排序] [LIMIT 數量];
?實例:??
-- 查詢所有學生信息
SELECT * FROM students;-- 查詢所有女生的姓名和班級
SELECT name, class FROM students WHERE gender = '女';-- 查詢20歲以上學生,按年齡降序排序
SELECT * FROM students WHERE age > 20 ORDER BY age DESC;-- 查詢第5-10條記錄(分頁)
SELECT * FROM students LIMIT 4, 6;
? 二、增(INSERT) - 添加數據
?語法:??
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
?實例:??
-- 添加1位學生(指定列)
INSERT INTO students (name, age, gender, class)
VALUES ('張三', 18, '男', '計算機1班');-- 添加多位學生
INSERT INTO students (name, age, gender, class)
VALUES ('李四', 19, '女', '外語2班'),('王五', 20, '男', '物理3班');
🔄 三、改(UPDATE) - 修改數據
?語法:??
UPDATE 表名 SET 列1=值1, 列2=值2 [WHERE 條件];
?**?? 警告:?**? 不指定WHERE會修改整個表!
?實例:??
-- 修改張三的班級
UPDATE students SET class = '計算機2班' WHERE name = '張三';-- 所有人年齡增加1歲
UPDATE students SET age = age + 1;-- 修改多個字段
UPDATE students
SET age = 22, gender = '女'
WHERE name = '王五';
? 四、刪(DELETE) - 刪除數據
?語法:??
DELETE FROM 表名 [WHERE 條件];
?**?? 重要:?**? 刪除操作不可逆,務必確認WHERE條件!
?實例:??
-- 刪除名為李四的學生
DELETE FROM students WHERE name = '李四';-- 刪除20歲以上所有女生
DELETE FROM students WHERE age > 20 AND gender = '女';-- ?? 刪除整張表(謹慎使用!)
DELETE FROM students;
📊 五、綜合示例
假設我們有個成績表(scores):
CREATE TABLE scores (student_id INT,subject VARCHAR(20),score INT,FOREIGN KEY (student_id) REFERENCES students(id)
);
?增刪改查組合使用:??
-- 添加成績
INSERT INTO scores VALUES
(1, '數學', 90),
(2, '英語', 85);-- 查詢不及格的學生和科目
SELECT s.name, sc.subject, sc.score
FROM students s
JOIN scores sc ON s.id = sc.student_id
WHERE sc.score < 60;-- 修改張三的數學成績
UPDATE scores SET score = 95
WHERE student_id = (SELECT id FROM students WHERE name = '張三')
AND subject = '數學';-- 刪除所有成績為0的記錄
DELETE FROM scores WHERE score = 0;
💡 核心要點總結:
- ?查(WHERE)?? :操作前先用
SELECT
確認數據 - ?改/刪(WHERE)??:必須有WHERE條件,否則會全表操作
- ?外鍵關聯?:表連接時要使用JOIN
- ?事務?:重要操作建議用事務(BEGIN; ... COMMIT;)
📚 下一步學習建議:
graph LR
A[基礎CRUD] --> B[條件查詢]
B --> C[表連接JOIN]
C --> D[分組聚合GROUP BY]
D --> E[子查詢]
E --> F[存儲過程/函數]
從基礎逐步進階,多動手練習才能真正掌握!建議安裝MySQL或SQLite進行實踐練習。