(一)將舊表復制到新表
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: **********
然后,使用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: **********
請注意,運算符(<
)表示導入。
要驗證導入,可以使用SHOW TABLES
命令快速檢查。
mysql> SHOW TABLES FROM yiibaidb_backup;