接續前幾章,本文將帶你掌握 MySQL 中修改表結構、更新刪除資料、資料庫備份還原,以及批次執行 SQL 腳本的核心技能。
使用 ALTER TABLE 即可動態擴充欄位。例如在 mytable 新增 single 欄位(char(1) 表示是否單身):
ALTER TABLE mytable ADD COLUMN single CHAR(1);
UPDATE mytable SET single='y' WHERE name='abccs';
INSERT INTO mytable VALUES ('abc','f','1966-08-17','china','n');
DELETE FROM mytable WHERE name='abc';
注意:DELETE 若無 WHERE 條件會清空全表,操作前請三思。
DROP TABLE table1, table2; 可一次刪多張表。DROP DATABASE db_name;警告:執行前務必確認備份無誤,操作不可逆。
退出 MySQL 客戶端至系統命令列(DOS/Shell),使用 mysqldump 工具:
# 備份整個資料庫 abccs
mysqldump --opt abccs > abccs.dbb
# 還原(先建立空資料庫)
mysqladmin create abccs
mysql abccs < abccs.dbb
--opt 參數包含鎖表、延遲插入、擴展 INSERT 等優化選項,產出檔案較小、還原較快。
將多條 SQL 指令存成文字檔 mytest.sql:
USE abccs;
SELECT * FROM mytable;
SELECT name, sex FROM mytable WHERE name='abccs';
命令列執行:
# 直接顯示結果
mysql < mytest.sql
# 分頁查看
mysql < mytest.sql | more
# 導出至檔案
mysql < mytest.sql > mytest.out
這在自動化部署、定時任務、大量資料匯入極為實用。