記錄插入 (INSERT)
-- 單條插入 (顯式列名,防結構變更報錯)
INSERT INTO mytable (name, sex, birth, birthaddr, single)
VALUES ('abc', 'f', '1966-08-17', 'china', 'n');
-- 批量插入 (高性能)
INSERT INTO mytable (name, sex, birth, birthaddr, single) VALUES
('user1', 'm', '1990-01-01', 'beijing', 'y'),
('user2', 'f', '1992-05-20', 'shanghai', 'n'),
('user3', 'm', '1988-11-11', 'guangzhou', 'y');
記錄查詢 (SELECT)
-- 全表掃描 (慎用大表)
SELECT * FROM mytable;
-- 條件過濾
SELECT name, birth FROM mytable WHERE sex='f' AND birth > '1990-01-01';
-- 排序分頁
SELECT * FROM mytable ORDER BY birth DESC LIMIT 10 OFFSET 20;
記錄更新 (UPDATE)
-- 單條更新
UPDATE mytable SET single='y' WHERE name='mary';
-- 批量更新 (帶條件)
UPDATE mytable SET birthaddr='shenzhen' WHERE birthaddr='china';
-- 複雜更新 (子查詢/連接)
UPDATE mytable m
JOIN (SELECT id FROM other_table WHERE condition) o ON m.id=o.id
SET m.single='n';
記錄刪除 (DELETE)
-- 條件刪除
DELETE FROM mytable WHERE name='abc';
-- 全表刪除 (保留 AUTO_INCREMENT,觸發器生效)
DELETE FROM mytable WHERE 1;
-- TRUNCATE 對比:重置自增、不觸發觸發器、速度極快、不可回滾
TRUNCATE TABLE mytable;
表結構管理 (DDL)
刪除表
-- 刪除單表
DROP TABLE tbl_name;
-- 刪除多表 (原子操作)
DROP TABLE tbl1, tbl2, tbl3;
表結構查看
DESC mytable;
-- 或更詳細
SHOW CREATE TABLE mytable;
查詢結果示例
mysql> SELECT * FROM mytable;
+----------+------+------------+-----------+--------+
| name | sex | birth | birthaddr | single |
+----------+------+------------+-----------+--------+
| abccs | f | 1977-07-07 | china | y |
| mary | f | 1978-12-12 | usa | NULL |
| tom | m | 1970-09-02 | usa | NULL |
| abc | f | 1966-08-17 | china | n |
+----------+------+------------+-----------+--------+
實用技巧
USE db_name; 切換默認數據庫,後續表操作無需前綴
- 命令未輸入分號可換行繼續,提示符變為
->,輸入 \c 取消
↑/↓ 瀏覽歷史命令,Ctrl+R 搜索歷史
- 大數據量操作前 **必備份**,
DELETE/UPDATE 無 WHERE 時客戶端提示確認 (需 --safe-updates 啟動參數)