(一)將舊錶複製到新表html
一、CREATE TABLE新表 SELECT* FROM舊錶;mysql
該語句只是複製表結構以及數據,它不會複製與表關聯的其餘數據庫對象,如索引,主鍵約束,外鍵約束,觸發器等。sql
CREATE TABLE if not exists new_table
SELECT col1, col2, col3
FROM
existing_table
WHERE
conditions;
二、MySQL 數據庫不支持 SELECT ... INTO 語句,但支持 INSERT INTO ... SELECT
shell
其中在使用select into 語句與insert into select 語句時,新表要提早創建,而且新表與舊錶的字段屬性要同樣才能夠。數據庫
create table 新表 like 舊錶;
服務器
新表創建以後纔可使用下面的兩個語句:oracle
SELECT * INTO 新表 FROM 舊錶;app
INSERT INTO 新表 SELECT * FROM 舊錶;yii
只複製但願的列插入到另外一個已存在的表中:
工具
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數據庫,您須要執行如下步驟:
mysqldump
工具導出要複製的數據庫的全部數據庫對象和數據。做爲一個演示,假設要把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;
mysql> SHOW TABLES FROM yiibaidb_backup;