mysql一千萬(wàn)數(shù)據(jù)插入另外一個(gè)表的方法:
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到貴州網(wǎng)站設(shè)計(jì)與貴州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋貴州地區(qū)。
1、INSERTINTO目標(biāo)表SELECT*FROM來(lái)源表;2、例如,要將articles表插入到newArticles表中,則可以通過(guò)如下SQL語(yǔ)句實(shí)現(xiàn)3、INSERTINTOnewArticlesSELECT*FROMarticles。
/12分步閱讀
打開SQL Server Management Studio,按圖中的路徑進(jìn)入導(dǎo)入數(shù)據(jù)界面。
2/12
導(dǎo)入的時(shí)候需要將EXCEL的文件準(zhǔn)備好,不能打開。點(diǎn)擊下一步。
3/12
數(shù)據(jù)源:選擇“Microsoft Excel”除了EXCEL類型的數(shù)據(jù),SQL還支持很多其它數(shù)據(jù)源類型。
4/12
選擇需要導(dǎo)入的EXCEL文件。點(diǎn)擊瀏覽,找到導(dǎo)入的文件確定。
5/12
再次確認(rèn)文件路徑?jīng)]有問(wèn)題,點(diǎn)擊下一步。
6/12
默認(rèn)為是使用的WINODWS身份驗(yàn)證,改為使用SQL身份驗(yàn)證。輸入數(shù)據(jù)庫(kù)密碼,注意:數(shù)據(jù)庫(kù),這里看看是不是導(dǎo)入的數(shù)據(jù)庫(kù)。也可以在這里臨時(shí)改變,選擇其它數(shù)據(jù)庫(kù)。
7/12
選擇導(dǎo)入數(shù)據(jù)EXCEL表內(nèi)容范圍,若有幾個(gè)SHEET表,或一個(gè)SHEET表中有些數(shù)據(jù)我們不想導(dǎo)入,則可以編寫查詢指定的數(shù)據(jù)進(jìn)行導(dǎo)入。點(diǎn)擊下一步。
8/12
選擇我們需要導(dǎo)入的SHEET表,比如我在這里將SHEET表名改為price,則導(dǎo)入后生面的SQL數(shù)據(jù)庫(kù)表為price$。點(diǎn)擊進(jìn)入下一步。
9/12
點(diǎn)擊進(jìn)入下一步。
10/12
在這里完整顯示了我們的導(dǎo)入的信息,執(zhí)行內(nèi)容,再次確認(rèn)無(wú)誤后,點(diǎn)擊完成,開始執(zhí)行。
11/12
可以看到任務(wù)執(zhí)行的過(guò)程和進(jìn)度。
12/12
執(zhí)行成功:我們可以看看執(zhí)行結(jié)果,已傳輸1754行,表示從EXCEL表中導(dǎo)入1754條數(shù)據(jù),包括列名標(biāo)題。這樣就完成了,執(zhí)行SQL查詢語(yǔ)句:SELECT * FROM price$就可以查看已導(dǎo)入的數(shù)據(jù)內(nèi)容。
1. 表結(jié)構(gòu)完全一樣
insert into 表1
select * from 表2
2. 表結(jié)構(gòu)不一樣(這種情況下得指定列名)
insert into 表1 (列名1,列名2,列名3)
select ?列1,列2,列3 from 表2
工具/材料
Navicat
01
我們可以利用Navicat這個(gè)客戶端工具來(lái)創(chuàng)建表。
打開Navicat,連接上要操作的數(shù)據(jù)庫(kù),點(diǎn)擊打開這個(gè)庫(kù)。
02
打開后,在右邊的視圖上就可以看到這個(gè)庫(kù)里所有的表了。
03
在這里右鍵點(diǎn)擊空白的地方,點(diǎn)擊菜單里的‘New Table’
04
點(diǎn)擊后,就會(huì)創(chuàng)建一個(gè)新的表了,我們?cè)谶@里設(shè)置表的字段,比如設(shè)置了二個(gè)字段,id,和name,
05
按下快捷鍵ctrl+s就會(huì)保存這個(gè)新建的表,先輸入表的名字,點(diǎn)擊ok按鈕就行了。
06
在表視圖里就可以看到剛才建好的表了。
開發(fā)中,我們經(jīng)常需要將一個(gè)表的數(shù)據(jù)插入到另外一個(gè)表,有時(shí)還需要指定導(dǎo)入字段,雖然這個(gè)實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,但是還是會(huì)困擾許多新手,因此專門發(fā)一篇文章備查。
如果2張表的字段一致,并且希望插入全部數(shù)據(jù),可以用這種方法:
INSERT INTO 目標(biāo)表 SELECT * FROM 來(lái)源表;
比如要將 articles 表插入到 newArticles 表中,則是:
INSERT INTO newArticles SELECT * FROM articles;
如果只希望導(dǎo)入指定字段,可以用這種方法:
INSERT INTO 目標(biāo)表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 來(lái)源表;
注意字段的順序必須一致。
在 MySQL 中,插入(insert)一條記錄很簡(jiǎn)單,但是一些特殊應(yīng)用,在插入記錄前,需要檢查這條記錄是否已經(jīng)存在,只有當(dāng)記錄不存在時(shí)才執(zhí)行插入操作,本文介紹的就是這個(gè)問(wèn)題的解決方案。
其實(shí)很簡(jiǎn)單,只是為了忘記,做個(gè)記錄,用的時(shí)候方便。
不管是在網(wǎng)站開發(fā)還是在應(yīng)用程序開發(fā)中,我們經(jīng)常會(huì)碰到需要將MySQL或MS SQLServer某個(gè)表的數(shù)據(jù)批量導(dǎo)入到另一個(gè)表的情況,甚至有時(shí)還需要指定導(dǎo)入字段。
本文就將以MySQL數(shù)據(jù)庫(kù)為例,介紹如何通過(guò)SQL命令行將某個(gè)表的所有數(shù)據(jù)或指定字段的數(shù)據(jù),導(dǎo)入到目標(biāo)表?中。此方法對(duì)于SQLServer數(shù)據(jù)庫(kù),也就是T-SQL來(lái)說(shuō),同樣適用?。
類別一、?如果兩張張表(導(dǎo)出表和目標(biāo)表)的字段一致,并且希望插入全部數(shù)據(jù),可以用這種方法:
INSERT?INTO ?目標(biāo)表 ?SELECT??*?FROM ?來(lái)源表 ;
例如,要將?articles?表插入到?newArticles?表中,則可以通過(guò)如下SQL語(yǔ)句實(shí)現(xiàn):
INSERT?INTO ?newArticles ?SELECT??*?FROM ?articles ;
類別二、?如果只希望導(dǎo)入指定字段,可以用這種方法:
INSERT?INTO ?目標(biāo)表?(字段1,?字段2,?...) ?SELECT ??字段1,?字段2,?... ??FROM ?來(lái)源表 ;
請(qǐng)注意以上兩表的字段必須一致,否則會(huì)出現(xiàn)數(shù)據(jù)轉(zhuǎn)換錯(cuò)誤。
INSERT?INTO?TPersonnelChange(
UserId,
DepId,
SubDepId,
PostionType,
AuthorityId,
ChangeDateS,
InsertDate,
UpdateDate,
SakuseiSyaId
)SELECT
UserId,
DepId,
SubDepId,
PostionType,
AuthorityId,
DATE_FORMAT(EmployDate,?'%Y%m%d'),
NOW(),
NOW(),
1
FROM
TUserMst
WHERE
`Status`?=?0
AND?QuitFlg?=?0
AND?UserId??2