mysql複製表以及複製數據庫

(一)將舊錶複製到新表html

一、CREATE TABLE新表 SELECT* FROM舊錶;mysql

該語句只是複製表結構以及數據,它不會複製與表關聯的其餘數據庫對象,如索引主鍵約束外鍵約束觸發器等。sql

 

  1. CREATE TABLE if not exists new_table
  2. SELECT col1, col2, col3
  3. FROM
  4. existing_table
  5. WHERE
  6. 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複製表到另外一個數據庫

訪問不一樣數據庫中的表:數據庫名.表名 ,採用點 的形式。

有時,您要將表複製到其餘數據庫。 在這種狀況下,可以使用如下語句:

  1. CREATE TABLE destination_db.new_table
  2. LIKE source_db.existing_table;
  3.  
  4. INSERT destination_db.new_table
  5. SELECT *
  6. FROM source_db.existing_table;
SQL

具體流程:

  1. CREATE DATABASE IF NOT EXISTS testdb;
SQL

其次,經過將其結構從示例數據庫(yiibaidb)中的offices表複製出來,在testdb中建立了offices表。

  1. CREATE TABLE testdb.offices LIKE yiibaidb.offices;
SQL

第三,咱們將數據從yiibaidb.offices表複製到testdb.offices表中。

  1. INSERT testdb.offices
  2. SELECT *
  3. FROM yiibaidb.offices;

 

(四)MySQL數據庫導入導出


一、使用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
其中>表示導出。
二、導入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語句以下:

  1. CREATE DATABASE yiibaidb_backup;
SQL

第三,使用SHOW DATABASES命令驗證:

  1. SHOW DATABASES
SQL

 

步驟2

 

使用mysqldump工具將數據庫對象和數據轉儲到SQL文件中。

假設要將數據庫對象和數據庫轉儲到位於D:\database_bak文件夾的SQL文件中,這裏是如下命令:

  1. C:\Users\Administrator> mysqldump -u root -p yiibaidb > d:\database_bak\yiibaidb.sql
  2. Enter password: **********
SQL

基本上,此命令指示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;mysql> SHOW TABLES FROM yiibaidb_backup;
相關文章
相關標籤/搜索