mysql複製表以及複製資料庫

来源:https://www.cnblogs.com/snake23/archive/2018/09/05/9593887.html
-Advertisement-
Play Games

(一)將舊表複製到新表 1、CREATE TABLE新表 SELECT* FROM舊表; 該語句只是複製表結構以及數據,它不會複製與表關聯的其他資料庫對象,如索引,主鍵約束,外鍵約束,觸發器等。 CREATE TABLE if not exists new_table SELECT col1, co ...


(一)將舊表複製到新表

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;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • MySQL實現排名並查詢指定用戶排名功能,併列排名功能 表結構: CREATE TABLE test.testsort ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT 0 COMMENT '用戶id', score decimal( ...
  • 1,索引 2.exists 代替 in 3.SQL優化 4、觸發器[表上創建的] 5、存儲過程【創建在資料庫上的】 6、資料庫引擎ENGINE【MYISAM,INNODB】 7、MySQL如何修改密碼 ...
  • 服務端與瀏覽器收發信息: socket 套接字 是應用層和傳輸層之間一個虛擬層,是一個介面. 列印一下收到的消息是什麼>??? 那瀏覽器收到的消息是什麼? 通過以上對比,發現收發消息的格式都是一樣的 即為 HTTP協議格式 每個HTTP請求和響應都遵循相同的格式,一個HTTP包含Header和Bod ...
  • 1.需求簡介 最近開發人員需要進行一批數據進行生產上SQL語句耗時過長問題的驗證與優化。所以在性能測試庫中批量建造數據,由於交易本身業務邏輯過於複雜以及需要各種授權,最後決定採用插表的方式完成。 2.所用工具 DbVisualizer 10.0.14(已破解)(並不需要本地存在DB2客戶端,DbVi ...
  • 背景及原理 資料庫的備份是災難恢復的最後一道屏障,不管什麼類型的資料庫都需要設置資料庫備份,MongoDB也不例外。MongoDB 3.0 後 ,資料庫可以採用Wiredtiger存儲引擎後(3.2 版本預設),在此環境下通過mongodump 備份後,產生的備份文件要遠大於數據存儲文件的大小。此外 ...
  • 第一步、以Oracle帳戶進入Linux系統 第二步、執行以下命令查看資料庫監聽器的狀況 : 或者 查看資料庫埠是否被監聽 (預設1521) 第三步、停止資料庫監聽器 : 第四步、以管理員身份連接並關閉資料庫 : 第五步、退出SqlPlus : 或者 第六步、重新啟動資料庫監聽 : 第七步、重新以 ...
  • 如果是本地 :sqlplus system/xxx(用戶名/密碼) 遠程到伺服器, sqlplus system/xxx(用戶名/密碼) @IP:port/orcl(orcl為資料庫實例) ...
  • 首先我們複習第一天的主要內容: sql分類 知識概述 1) DDL(Data Definition Language)數據定義語言 用來定義資料庫對象:資料庫,表,列等。關鍵字:create, drop,alter 等 2) DML(Data Manipulation Language)數據操作語言 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...