首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 基礎 SQL 實戰演練:從建表到分組查詢的完整練習

     編輯:MySQL 資料庫相關知識

本文整理一套針對 MySQL 的基礎 SQL 練習,涵蓋 DDL、DML、聚合查詢、分頁限制等高頻操作,並對比 SQL Server 差異,適合初學者快速上手。

術語速查

英文中文
Data / Database / RDBMS數據 / 數據庫 / 關係數據庫管理系統
GRANT / REVOKE / DENY授權 / 取消權限 / 拒絕權限
Transaction / Trigger事務 / 觸發器
Primary Key / Foreign Key / Identity主鍵 / 外鍵 / 標識列

核心練習

1. 建表

CREATE TABLE student (
    學號 INT,
    姓名 VARCHAR(10),
    年齡 INT,
    性別 VARCHAR(4),
    家庭住址 VARCHAR(50),
    聯系電話 VARCHAR(11)
);

2. 修改結構

ALTER TABLE student ADD COLUMN 學歷 VARCHAR(6);
ALTER TABLE student DROP COLUMN 家庭住址;  -- 注意用 DROP 而非 DELETE

3. 插入數據

INSERT INTO student (學號,姓名,年齡,性別,聯系電話,學歷) VALUES
(1,'A',22,'男','123456','小學'),
(2,'B',21,'男','119','中學'),
(3,'C',23,'男','110','高中'),
(4,'D',18,'女','114','大學');

4. 更新與刪除

UPDATE student SET 學歷='大專' WHERE 聯系電話 LIKE '11%';
DELETE FROM student WHERE 姓名 LIKE 'C%' AND 性別='男';

5. 查詢進階

-- 年齡<22 且 學歷=大專
SELECT 姓名,學號 FROM student WHERE 年齡<22 AND 學歷='大專';

-- 分頁:MySQL 用 LIMIT,SQL Server 用 TOP
SELECT * FROM student ORDER BY 年齡 DESC LIMIT 0, 2;  -- 前 2 筆
-- 近似「前 25%」需動態計算:LIMIT 0, (SELECT COUNT(*)*0.25 FROM student)

-- 分組聚合
SELECT 性別, AVG(年齡) AS 平均年齡 FROM student GROUP BY 性別;

6. 聚合函數速記

  • AVG/SUM/MAX/MIN:平均/和/最大/最小
  • COUNT(*):全部行數(含 NULL)
  • COUNT(col):非 NULL 行數

MySQL vs SQL Server 關鍵差異

  • 分頁:LIMIT offset, rows vs TOP n PERCENT / OFFSET ... FETCH
  • 自增:AUTO_INCREMENT vs IDENTITY(1,1)
  • 字符串連接:CONCAT() vs +

建議在真實庫中跑通上述語句,再嘗試將練習遷移至 PostgreSQL 或 SQLite,加深對標準 SQL 的理解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved