欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql復(fù)制表的幾種常用方式總結(jié)

 更新時(shí)間:2023年04月10日 11:26:21   作者:jerry-89  
mysql想必大家比較熟悉了,我們常見的crud sql想必大家也是手到拈來,下面這篇文章主要給大家介紹了關(guān)于mysql復(fù)制表的幾種常用方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Linux安裝mysql 在/etc下沒有my.cnf的問題

    解決Linux安裝mysql 在/etc下沒有my.cnf的問題

    這篇文章主要介紹了解決Linux安裝mysql 在/etc下沒有my.cnf的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • mysql清空表數(shù)據(jù)的兩種方式和區(qū)別解析

    mysql清空表數(shù)據(jù)的兩種方式和區(qū)別解析

    這篇文章主要介紹了mysql清空表數(shù)據(jù)的兩種方式和區(qū)別,本文通過文字實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • mysql alter語句用法實(shí)例

    mysql alter語句用法實(shí)例

    這里簡單分享幾個(gè)mysql alter語句用法,方便大家使用
    2013-02-02
  • 通過SQL語句來備份,還原數(shù)據(jù)庫

    通過SQL語句來備份,還原數(shù)據(jù)庫

    這里僅僅用到了一種方式而已,把數(shù)據(jù)庫文件備份到磁盤然后在恢復(fù).
    2010-02-02
  • MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解

    MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解

    這篇文章主要介紹了MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解,非常詳細(xì)的用中文注釋了各個(gè)參數(shù)的作用以及建議值,需要的朋友可以參考下
    2014-03-03
  • MySQL視圖和索引專篇精講

    MySQL視圖和索引專篇精講

    這篇文章主要介紹了MySQL的視圖和索引用法與區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 解決mac使用homebrew安裝MySQL無法登陸問題

    解決mac使用homebrew安裝MySQL無法登陸問題

    如果你電腦是Mac的,使用homebrew安裝MySQL是一個(gè)非常便捷的方式,但是還是會(huì)出現(xiàn)一些問題。下面通過本文給大家介紹解決mac使用homebrew安裝MySQL無法登陸問題,需要的朋友可以參考下
    2017-03-03
  • 批量替換 MySQL 指定字段中的字符串

    批量替換 MySQL 指定字段中的字符串

    批量替換 MySQL 指定字段中的字符串是數(shù)據(jù)庫應(yīng)用中很常見的需求,但是有很多初學(xué)者在遇到這種需求時(shí),通常都是用腳本來實(shí)現(xiàn);其實(shí),MySQL 內(nèi)置的有批量替換語法,效率也會(huì)高很多;想了解具體方法,繼續(xù)閱讀本文吧 :)
    2009-09-09
  • 深入解析MySQL索引數(shù)據(jù)結(jié)構(gòu)

    深入解析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
  • Mysql中的find_in_set的使用方法介紹

    Mysql中的find_in_set的使用方法介紹

    Mysql中的find_in_set的使用方法介紹,需要的朋友可以參考一下
    2013-03-03

最新評論