mysql復制表以及復制數據庫


(一)將舊表復制到新表

1、CREATE TABLE新表 SELECT* FROM舊表;

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

 

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

訪問不同數據庫中的表:數據庫名.表名 ,采用點 的形式。

有時,您要將表復制到其他數據庫。 在這種情況下,可使用以下語句:

  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數據庫導入導出


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語句如下:

  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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM