首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 多表操作與批次處理完整教學:關聯查詢、修改、備份、SQL 腳本執行

     編輯:MySQL 資料庫相關知識

多表關聯查詢

-- 表 mytable(name, sex, birth, birthaddr)
-- 表 title(writer, title, senddate)

-- 查詢 abccs 的姓名、性別、文章
SELECT m.name, m.sex, t.title
FROM mytable m, title t
WHERE m.name = t.writer AND m.name = 'abccs';

-- 查詢文章 a2 的作者、出生地、出生日期
SELECT t.title, t.writer, m.birthaddr, m.birth
FROM mytable m, title t
WHERE m.name = t.writer AND t.title = 'a2';

注意:同名欄位需加表別名限定(m.name、t.writer)。

DDL/DML 常用操作

操作SQL
新增欄位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';
刪除表DROP TABLE tbl1, tbl2;
刪除資料庫DROP DATABASE db_name;

備份與還原

# 備份(命令列)
mysqldump --opt db_name > db_name.sql

# 還原
mysql -u root -p db_name < db_name.sql

批次處理(SQL 腳本)

# 建立 batch.sql
USE db_name;
SELECT * FROM mytable;
SELECT name, sex FROM mytable WHERE name='abccs';

# 執行
mysql -u root -p < batch.sql
# 或
mysql -u root -p -e "SOURCE batch.sql;"

進階批次技巧

  • 事務包裹:腳本首尾加 START TRANSACTION; / COMMIT; 保證原子性。
  • 禁用外鍵/唯一檢查 大量導入時:
    SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0; ... SET FOREIGN_KEY_CHECKS=1; SET UNIQUE_CHECKS=1;
  • 分隔符變更:建立 Stored Procedure/Trigger 時用 DELIMITER // ... DELIMITER ;。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved