mysql復(fù)制表的幾種常用方式總結(jié)
mysql復(fù)制表的幾種方式
所描述的方法還請實(shí)際測試一下再使用.
1、復(fù)制表結(jié)構(gòu)及數(shù)據(jù)到新表
CREATE TABLE 新表SELECT * FROM 舊表
這種方法會(huì)將oldtable中所有的內(nèi)容都拷貝過來,當(dāng)然我們可以用delete from newtable;來刪除。
新表中沒有了舊表的primary key、Extra(auto_increment)等屬性。需要自己用"alter"添加,而且容易搞錯(cuò)。
2、只復(fù)制表結(jié)構(gòu)到新表
CREATE TABLE 新表SELECT * FROM 舊表WHERE 1=2
或CREATE TABLE 新表LIKE 舊表
3、復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)一樣)
INSERT INTO 新表SELECT * FROM 舊表
4、復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)不一樣)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 舊表
5、可以將表1結(jié)構(gòu)復(fù)制到表2
SELECT * INTO 表2 FROM 表1 WHERE 1=2
6、可以將表1內(nèi)容全部復(fù)制到表2
SELECT * INTO 表2 FROM 表1
7、 show create table 舊表;
這樣會(huì)將舊表的創(chuàng)建命令列出。我們只需要將該命令拷貝出來,更改table的名字,就可以建立一個(gè)完全一樣的表
8、mysqldump
用mysqldump將表dump出來,改名字后再導(dǎo)回去或者直接在命令行中運(yùn)行
9、復(fù)制舊數(shù)據(jù)庫到新數(shù)據(jù)庫(復(fù)制全部表結(jié)構(gòu)并且復(fù)制全部表數(shù)據(jù))
#mysql -u root -ppassword >CREATE DATABASE new_db; #mysqldump old_db -u root -ppassword--skip-extended-insert --add-drop-table | mysql new_db -u root -ppassword
10、表不在同一數(shù)據(jù)庫中(如,db1 table1, db2 table2)
sql: insert into db1.table1 select * from db2.table2 (完全復(fù)制) insert into db1.table1 select distinct * from db2.table2(不復(fù)制重復(fù)紀(jì)錄) insert into tdb1.able1 select top 5 * from db2.table2 (前五條紀(jì)錄)
MySQL拷貝表的幾種方式
1、拷貝結(jié)構(gòu)-添加數(shù)據(jù)
## 拷貝結(jié)構(gòu) CREATE TABLE newTable LIKE oldTable; ## 添加數(shù)據(jù) INSERT INTO newTable SELECT * FROM oldTable;
2、拷貝結(jié)構(gòu)和數(shù)據(jù)
CREATE TABLE newTable SELECT * FROM oldTable;
注:新表中沒有了舊表的primary key、Extra(auto_increment)等屬性。需要自己用"alter"添加,而且容易搞錯(cuò)。
3、拷貝部分字段和部分?jǐn)?shù)據(jù)
## 拷貝部分字段 CREATE TABLE newTable AS ( SELECT 字段1, 字段2,... FROM oldTable ) ## 拷貝部分?jǐn)?shù)據(jù) CREATE TABLE 新表 AS<br>(<br>SELECT * FROM 舊表 WHERE id='1'
4、不同數(shù)據(jù)庫拷貝表
CREATE TABLE newTable LIKE base1.oldTable; CREATE TABLE base1.newTable LIKE base2.oldTable;
表復(fù)制/合并查詢/外連接
1. 表復(fù)制
自我復(fù)制數(shù)據(jù)(蠕蟲復(fù)制)
有時(shí),為了對某個(gè)sql語句進(jìn)行效率測試,我們需要海量的數(shù)據(jù)時(shí),可以使用此法為表創(chuàng)建海量數(shù)據(jù)
演示如何自我復(fù)制
思考:如何去掉一張表中的重復(fù)數(shù)據(jù)
思路:
先創(chuàng)建一張臨時(shí)表 my_tmp,該表的結(jié)構(gòu)和 my_tab02 一樣
把 my_tmp 的記錄,通過 distinct 關(guān)鍵字 處理后 , 把記錄復(fù)制到 my_tmp
清除 my_tab02 中的所有記錄
把 my_tmp 中的記錄 復(fù)制到 my_tab02 中
drop 掉臨時(shí)表 my_tmp
2. 合并查詢
有時(shí)在實(shí)際應(yīng)用中,為了合并多個(gè) select 語句的結(jié)果,可以使用集合操作符號 union,union all
union all
該操作符用于取得兩個(gè)結(jié)果集的并集,當(dāng)使用該操作符時(shí),不會(huì)取消重復(fù)行。
union
該操作符用于取得兩個(gè)結(jié)果集的并集,當(dāng)使用該操作符時(shí),會(huì)取消重復(fù)行。
3. 外連接
左外連接:如果左側(cè)的表完全顯示我們就說是左外連接右外連接:如果右側(cè)的表完全顯示我們就說是右外連接舉例說明: 創(chuàng)建兩張表,一張存放名字,一張存放分?jǐn)?shù)
要求:顯示所有人的成績,如果沒有成績,也要顯示該人的姓名和id號,成績顯示為空
若用多表查詢的方式,則無法查詢到成績?yōu)榭盏娜说慕Y(jié)果
用左外連接的方式來查找,就可以將成績?yōu)榭盏娜说拿忠诧@示出來
說明:左外連接就是左側(cè)表完全顯示,所以會(huì)把stu的內(nèi)容全部顯示出來
用右外連接的方式來查找,就可以將成績?yōu)榭盏娜说拿忠诧@示出來
說明:右外連接就是右側(cè)表完全顯示,即使和左表沒有匹配的記錄,也會(huì)把exam的內(nèi)容全部顯示出來
問題:列出部門名稱和這些部門的員工名稱和工作,同時(shí)要求顯示出那些沒有員工的部門
在實(shí)際開發(fā)中,我們絕大多數(shù)情況下使用的是內(nèi)連接
總結(jié)
到此這篇關(guān)于mysql復(fù)制表的幾種常用方式的文章就介紹到這了,更多相關(guān)mysql復(fù)制表方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL中復(fù)制表結(jié)構(gòu)及其數(shù)據(jù)的5種方式
- mysql 復(fù)制記錄實(shí)現(xiàn)代碼
- mysql大表復(fù)制的具體實(shí)現(xiàn)
- mysql復(fù)制表的幾種常用方式
- MySQL復(fù)制表常用的四種方式小結(jié)
- MySQL級聯(lián)復(fù)制下如何進(jìn)行大表的字段擴(kuò)容
- mysql?中的備份恢復(fù),分區(qū)分表,主從復(fù)制,讀寫分離
- MySQL 復(fù)制表的方法
- MySQL復(fù)制表的三種方式(小結(jié))
- Mysql復(fù)制表三種實(shí)現(xiàn)方法及grant解析
- Mysql將一個(gè)表中的某一列數(shù)據(jù)復(fù)制到另一個(gè)表中某一列里的方法
- MySQL不同表之前的字段復(fù)制
- Mysql數(shù)據(jù)表中的蠕蟲復(fù)制使用方法
- MySQL 復(fù)制表詳解及實(shí)例代碼
- MySQL查詢結(jié)果復(fù)制到新表的方法(更新、插入)
- mysql 復(fù)制表結(jié)構(gòu)和數(shù)據(jù)實(shí)例代碼
- MySQL中復(fù)制數(shù)據(jù)表中的數(shù)據(jù)到新表中的操作教程
- MySQL中表的復(fù)制以及大型數(shù)據(jù)表的備份教程
- mysql數(shù)據(jù)庫批量復(fù)制單條數(shù)據(jù)記錄
相關(guān)文章
解決Linux安裝mysql 在/etc下沒有my.cnf的問題
這篇文章主要介紹了解決Linux安裝mysql 在/etc下沒有my.cnf的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01mysql清空表數(shù)據(jù)的兩種方式和區(qū)別解析
這篇文章主要介紹了mysql清空表數(shù)據(jù)的兩種方式和區(qū)別,本文通過文字實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解
這篇文章主要介紹了MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解,非常詳細(xì)的用中文注釋了各個(gè)參數(shù)的作用以及建議值,需要的朋友可以參考下2014-03-03深入解析MySQL索引數(shù)據(jù)結(jié)構(gòu)
什么是索引?索引就是排好序的數(shù)據(jù)結(jié)構(gòu),可以幫助我們快速的查找到數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL索引數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2021-10-10