(一)將舊表複製到新表 1、CREATE TABLE新表 SELECT* FROM舊表; 該語句只是複製表結構以及數據,它不會複製與表關聯的其他資料庫對象,如索引,主鍵約束,外鍵約束,觸發器等。 CREATE TABLE if not exists new_table SELECT col1, co ...
(一)將舊表複製到新表
1、CREATE TABLE新表 SELECT* FROM舊表;
該語句只是複製表結構以及數據,它不會複製與表關聯的其他資料庫對象,如索引,主鍵約束,外鍵約束,觸發器等。
-
CREATE TABLE if not exists new_table
-
SELECT col1, col2, col3
-
FROM
-
existing_table
-
WHERE
-
conditions;
2、MySQL 資料庫不支持 SELECT ... INTO 語句,但支持 INSERT
INTO ... SELECT
其中在使用select into 語句與insert into select 語句時,新表要提前建立,並且新表與舊表的欄位屬性要一樣才可以。
create table 新表 like 舊表;
新表建立之後才可以使用下麵的兩個語句:
SELECT * INTO 新表 FROM 舊表;
INSERT INTO 新表 SELECT * FROM 舊表;
只複製希望的列插入到另一個已存在的表中:
INSERT INTO 新表 (column_name(s))
SELECT column_name(s) FROM 舊表;
實例:INSERT INTO Websites (name, country) SELECT app_name, country FROM apps;
(二)複製相同表結構
對於mysql的複製相同表結構方法,有create
table as 和create table like 兩種
create table 新表 like 舊表;
create table 新表 as select * from 舊表 limit 0;
二者的區別:
as用來創建相同表結構並複製源表數據
like用來創建完整表結構和全部索引
oracle支持as,也是只有表結構沒有索引
oracle不支持like。
(三)MySQL複製表到另一個資料庫
訪問不同資料庫中的表:資料庫名.表名 ,採用點 的形式。
有時,您要將表複製到其他資料庫。 在這種情況下,可使用以下語句:
-
CREATE TABLE destination_db.new_table
-
LIKE source_db.existing_table;
-
INSERT destination_db.new_table
-
SELECT *
-
FROM source_db.existing_table;
具體流程:
-
CREATE DATABASE IF NOT EXISTS testdb;
其次,通過將其結構從示例資料庫(yiibaidb
)中的offices
表複製出來,在testdb
中創建了offices
表。
-
CREATE TABLE testdb.offices LIKE yiibaidb.offices;
第三,我們將數據從yiibaidb.offices
表複製到testdb.offices
表中。
-
INSERT testdb.offices
-
SELECT *
-
FROM yiibaidb.offices;
(四)MySQL資料庫導入導出
1、使用mysqldump工具將資料庫導出並轉儲到sql文件:mysqldump -u 用戶名 -p 資料庫名 > 導出的文件名
mysqldump -h IP -u 用戶名 -p 資料庫名 > 導出的文件名
2 :(導出某張表的表結構不含數據)mysqldump -h localhost -u root -p -d test pollution > G:\arcgisworkspace\zypdoc\test.sql
3:(導出某張表的表結構和數據,不加-d)
mysqldump -h 127.0.0.1 -u root -p test pollution > G:\arcgisworkspace\zypdoc\test.sql
mysqldump-u root -p yiibaidb >d:\database_bak\yiibaidb.sql
其中>表示導出。
2、導入sql文件
在MySQL中新建資料庫,這時是空資料庫,如新建一個名為news的目標資料庫
create database if not exists news;
use news;
導入文件:
source 路徑+導入的文件名;
source d:\mysql.sql;
要複製一個MySQL資料庫,您需要執行以下步驟:
- 首先,使用CREATE DATABASE語句創建一個新的資料庫。
- 其次,使用
mysqldump
工具導出要複製的資料庫的所有資料庫對象和數據。 - 第三,將SQL轉儲文件導入新的資料庫。
作為一個演示,假設要把yiibaidb
資料庫複製到yiibaidb_backup
資料庫:
步驟1, 創建yiibaidb_backup
資料庫:
首先,登錄到MySQL資料庫伺服器:
C:\Users\Administrator> mysql -u root -p
Enter password: **********
Shell
然後,使用CREATE DATABASE
語句如下:
-
CREATE DATABASE yiibaidb_backup;
第三,使用SHOW DATABASES命令驗證:
-
SHOW DATABASES
步驟2
使用mysqldump
工具將資料庫對象和數據轉儲到SQL文件中。
假設要將資料庫對象和資料庫轉儲到位於D:\database_bak
文件夾的SQL文件中,這裡是以下命令:
-
C:\Users\Administrator> mysqldump -u root -p yiibaidb > d:\database_bak\yiibaidb.sql
-
Enter password: **********
基本上,此命令指示mysqldump
使用具有密碼的root
用戶帳戶登錄到MySQL伺服器,並將資料庫對象和yiibaidb
資料庫的數據導出到d:\database_bak\yiibaidb.sql
。 請註意,運算符(>
)表示導出。
步驟2
將d:\database_bak\yiibaidb.sql
文件導入到yiibaidb_backup
資料庫。
C:\Users\Administrator> mysql -u root -p yiibaidb_backup < d:\database_bak\yiibaidb.sql
Enter password: **********
Shell
請註意,運算符(<
)表示導入。
要驗證導入,可以使用SHOW TABLES
命令快速檢查。
mysql> SHOW TABLES FROM yiibaidb_backup;