MySQL 作為最流行的開源關係型數據庫,掌握其核心操作語句是每位開發者和運維人員的基本功。本文系統整理了從建庫建表到數據增刪改查的常用 SQL 語句,並附帶實戰範例,幫助你快速上手或查漏補缺。
-- 創建名為 xuning_test 的數據庫
CREATE DATABASE xuning_test;
-- 切換上下文至該數據庫
USE xuning_test;
以下範例建立一張 person 表,包含主鍵、姓名、性別、年齡、地址及備註欄位:
CREATE TABLE person (
id INT NOT NULL,
name VARCHAR(16) NOT NULL,
sex VARCHAR(16) NOT NULL,
age INT NOT NULL,
address VARCHAR(128) NOT NULL,
remark VARCHAR(512) NOT NULL
);
支援單條或批量插入,批量寫法效能更佳:
INSERT INTO person VALUES
(1, 'name_1', 'men', 99, 'beijing', 'This is a frindsheep boy'),
(2, 'name_2', 'men', 88, 'shanghai', 'ok great'),
(3, 'name_3', 'man', 77, 'guangzhou', 'This is lickly'),
(4, 'name_4', 'men', 66, 'beijing', 'This is a frindsheep boy'),
(5, 'name_5', 'men', 55, 'beijing', 'you dont going to shool'),
(6, 'name_6', 'man', 44, 'beijing', 'This is a frindsheep boy'),
(7, 'name_7', 'men', 33, 'beijing', 'This is a frindsheep boy'),
(8, 'name_8', 'man', 22, 'beijing', ''),
(9, 'name_9', 'men', 11, 'beijing', 'This is a frindsheep boy');
-- 查看全表數據
SELECT * FROM person;
-- 僅查詢姓名欄位
SELECT name FROM person;
-- 等值查詢:性別為 men
SELECT name FROM person WHERE sex = 'men';
-- 範圍查詢:年齡大於 50 歲
SELECT name, address FROM person WHERE age > 50;
使用完全限定名稱(庫.表.列)消除歧義,適用於跨庫 JOIN:
SELECT
xuning_test.person.name,
xuning_test.person.id,
xuning_test.person.age,
xuning_test.person.address
FROM xuning_test.person, test1.test_xuning
WHERE xuning_test.person.id = test1.test_xuning.id;
善用別名可大幅提升 SQL 可讀性:
USE xuning_test;
SELECT c.name, c.sex
FROM person AS c
WHERE c.age > 40 AND c.address = 'beijing';
SELECT *,僅查詢業務所需欄位,減少網路傳輸與 I/O。本文涵蓋了 MySQL 日常開發中 90% 以上的高頻操作。建議收藏備查,並在實際項目中靈活組合。進階優化方向請關注:執行計劃分析(EXPLAIN)、慢查詢日誌、分區表與讀寫分離架構。