本文通過實例演示 MySQL 中表間記錄複製、CSV 導入導出、字符串與加密函數的綜合應用。
-- 建立員工表
CREATE TABLE employee (
id INT,
name CHAR(10),
age INT,
sex ENUM('M','F'),
department CHAR(10)
);
INSERT INTO employee VALUES
(23, 'john', 27, 'M', 'Engi'),
(31, 'Sue', 31, 'F', 'Fiance'),
(113, 'David', 26, 'M', 'Admin');
-- 建立用戶表(主鍵自增)
CREATE TABLE user (
uid INT PRIMARY KEY AUTO_INCREMENT,
uname CHAR(10),
upass CHAR(10)
);
INSERT INTO user (uname, upass)
SELECT LOWER(name), PASSWORD(LOWER(name)) FROM employee;
結果:用戶名統一小寫,密碼經 PASSWORD() 加密存儲。
INSERT INTO user (uname, upass)
SELECT name, PASSWORD(name) FROM employee WHERE department = 'Fiance';
僅複製財務部門記錄,保留原始大小寫。
LOAD DATA INFILE '/tmp/a.txt'
INTO TABLE t20
FIELDS TERMINATED BY ':'
LINES TERMINATED BY '\n';
支援自定義字段與行分隔符,適用於 CSV、TSV 等結構化文本。
SELECT * FROM t20
INTO OUTFILE '/tmp/b.txt'
FIELDS TERMINATED BY ':'
LINES TERMINATED BY '\n';
需具備 FILE 權限,輸出目錄需 MySQL 服務進程可寫。
| 函數 | 說明 |
|---|---|
LOWER(str) | 轉小寫 |
PASSWORD(str) | MySQL 內置單向加密(注意:5.7+ 已棄用) |
ENUM | 枚舉類型,存儲預定義集合值,超出範圍自動轉為首個值 |
靈活組合 INSERT ... SELECT、導入導出命令與內置函數,可高效完成數據遷移、清洗與初始化任務。