首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 基礎操作入門教程(三):多表合併與資料庫備份還原

     編輯:MySQL 綜合教學

MySQL 基礎操作入門教程(三):多表合併與資料庫備份還原

本篇介紹相同結構表的垂直合併(UNION)、跨資料庫合併思路,以及使用 mysqldump 進行邏輯備份與還原。

一、同庫同結構表合併(垂直合併)

假設 person 與 father 結構相同(name, age, high, address)。

-- 1. 建立臨時表存放 UNION 結果(自動去重)
CREATE TEMPORARY TABLE tmp SELECT * FROM person UNION SELECT * FROM father;

-- 2. 建立目標表並指定主鍵
CREATE TABLE resu (
    name VARCHAR(20) PRIMARY KEY,
    age INT,
    high INT,
    address VARCHAR(20)
);

-- 3. 寫入去重後資料
INSERT INTO resu (name, age, high, address)
SELECT DISTINCT name, age, high, address FROM tmp;

-- 4. 清理臨時表
DROP TABLE tmp;

思考:
① 能否直接 CREATE TABLE tmp SELECT ... UNION ...?可行,但無法指定主鍵。
② 跨資料庫合併:SELECT * FROM db1.table UNION SELECT * FROM db2.table。
③ 水平合併(JOIN)需依關聯鍵 SELECT * FROM t1 JOIN t2 ON t1.id = t2.id。

二、mysqldump 邏輯備份與還原

注意:在系統 Shell 執行,非 MySQL 客戶端內部。

1. 備份整個資料庫

$ mysqldump -u root -p db_name > backup_db.sql
# 密碼可留空提示輸入,更安全
# 建議輸出 .sql 副檔名

2. 備份單張表

$ mysqldump -u root -p db_name table_name > backup_table.sql

3. 僅備份結構(不含資料)

$ mysqldump -u root -p -d --add-drop-table db_name > schema_only.sql

4. 指定字元集備份

$ mysqldump -u root -p --default-character-set=utf8mb4 db_name > backup_utf8.sql

5. 還原資料庫

$ mysql -u root -p db_name < backup_db.sql
# 或在 MySQL 客戶端:
mysql> SOURCE /path/backup_db.sql;

生產環境備份建議

  • 搭配 --single-transaction --master-data=2 獲取一致性快照與 binlog 位點。
  • 定時任務 + 異地儲存(如 S3、NFS)。
  • 定期演練還原,驗證備份可用性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved