當前位置:首頁 » 數據倉庫 » 怎麼將資料庫的插入語句導出
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

怎麼將資料庫的插入語句導出

發布時間: 2023-01-01 08:40:37

1. 如何用Mysql命令對資料庫進行導出/導入/技巧

info:
1.txt
zhangsan wuhan
lishi wuhan
把1.txt文件插入到mysql資料庫中

1.mysql -u root -p 資料庫名 </文件路徑(在bin下就直接加文件名)
2.mysqlimport的語法介紹:
mysqlimport位於mysql/bin目錄中,是mysql的一個載入(或者說導入)數據的一個非常有效的工具。這是一個命令行工具。有兩個參數以及大量的選項可供選擇。這個工具把一個文本文件(text file)導入到你指定的資料庫和表中。比方說我們要從文件Customers.txt中把數據導入到資料庫Meet_A_Geek中的表 Custermers中:
mysqlimport Meet_A_Geek Customers.txt
注意:這里Customers.txt是我們要導入數據的文本文件,而Meet_A_Geek是我們要操作的資料庫,資料庫中的表名是Customers,這里文本文件的數據格式必須與Customers表中的記錄格式一致,否則mysqlimport命令將會出錯。
其中表的名字是導入文件的第一個句號(.)前面文件字元串,另外一個例子:
mysqlimport Meet_A_Geek Cus.to.mers.txt
那麼我們將把文件中的內容導入到資料庫Meet_A_Geek 中的Cus表中。上面的例子中,都只用到兩個參數,並沒有用到更多的選項,下面介紹mysqlimport的選項:
選項 功能
-d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息
-f or --force 不管是否遇到錯誤,mysqlimport將強制繼續插入數據
-i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略。
-l or -lock-tables 數據被插入之前鎖住表,這樣就防止了,你在更新資料庫時,用戶的查詢和更新受到影響。
-r or -replace 這個選項與-i選項的作用相反;此選項將替代表中有相同唯一關鍵字的記錄。
--fields-enclosed- by= char 指定文本文件中數據的記錄時以什麼括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字元括起的。
--fields-terminated- by=char 指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符(Tab)
--lines-terminated- by=str 此選項指定文本文件中行與行之間數據的分隔字元串或者字元。 默認的情況下mysqlimport以newline為行分隔符。您可以選擇用一個字元串來替代一個單個的字元:一個新行或者一個回車。
mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。
例子:導入一個以逗號為分隔符的文件文件中行的記錄格式是這樣的:
"1", "ORD89876", "1 Dozen Roses", "19991226"
我們的任務是要把這個文件裡面的數據導入到資料庫Meet_A_Geek中的表格Orders中,我們使用這個命令:
bin/mysqlimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
3.mysql資料庫常用導出導入命令的幾個用例
================================
幾個常用用例:
1.導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導出一個資料庫結構
mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:\wcnc_db.sql
4.可參看 MySQL數據的導出和導入工具:mysqlmp
====================================
批處理是一種非互動式運行mysql程序的方法,如同您在mysql中使用的命令一樣,你仍然將使用這些命令。為了實現批處理,您重定向一個文件到 mysql程序中,首先我們需要一個文本文件,這個文本文件包含有與我們在mysql中輸入的命令相同的文本。比如我們要插入一些數據,使用包含下面文本的文件(文件名為New_Data.sql,當然我們也可以取名為New_Data.txt及任何其他的合法名字,並不一定要以後綴sql結尾):
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Block");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Newton");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
注意上面的這些句子的語法都必須是正確的,並且每個句子以分號結束。上面的USE命令選擇資料庫,INSERT命令插入數據。
下面我們要把上面的文件導入到資料庫中,導入之前要確認資料庫已經在運行,即是mysqld進程(或者說服務,Windows NT下面稱為」服務「,unix下面為」進程「)已經在運行。然後運行下面的命令:
bin/mysql –p < /home/mark/New_Data.sql
接著按提示輸入密碼,如果上面的文件中的語句沒有錯誤,那麼這些數據就被導入到了資料庫中。
命令行中使用LOAD DATA INFILE 從文件中導入數據到資料庫:
現在您可能會問自己,"究竟為什麼我要輸入所有的這些SQL語句到文件中,然後通過程序運行它們呢?」這樣看起來好像需要大量的工作。很好,你這樣想很可能就對了。但是假如你有從所有這些命令中產生的log記錄呢?現在這樣就很棒,嗯,大多數資料庫都會自動產生資料庫中的事件記錄的log。而大部分log 都包含有用過的原始的SQL命令。因此,如果您不能從您現在的資料庫中導出數據到新的mysql資料庫中使用,那麼您可以使用log和mysql的批處理特性,來快速且方便地導入您地數據。當然,這樣就省去了打字的麻煩。
LOAD DATA INFILE
這是我們要介紹的最後一個導入數據到MySQL資料庫中的方法。這個命令與mysqlimport非常相似,但這個方法可以在mysql命令行中使用。也就是說您可以在所有使用API的程序中使用這個命令。使用這種方法,您就可以在應用程序中導入您想要導入的數據。
使用這個命令之前,mysqld進程(服務)必須已經在運行。啟動mysql命令行:
bin/mysql –p
按提示輸入密碼,成功進入mysql命令行之後,輸入下面的命令:
USE Meet_A_Geek;
LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;
簡單的講,這樣將會把文件data.sql中的內容導入到表Orders中,如mysqlimport工具一樣,這個命令也有一些可以選擇的參數。比如您需要把自己的電腦上的數據導入到遠程的資料庫伺服器中,您可以使用下面的命令:
LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders;
上面的LOCAL參數表示文件是本地的文件,伺服器是您所登陸的伺服器。這樣就省去了使用ftp來上傳文件到伺服器,MySQL替你完成了.
您也可以設置插入語句的優先順序,如果您要把它標記為低優先順序(LOW_PRIORITY),那麼MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。可以使用如下的命令:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;
您也可以指定是否在插入數據的時候,取代或者忽略文件與數據表中重復的鍵值。替代重復的鍵值的語法:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders;
上面的句子看起來有點笨拙,但卻把關鍵字放在了讓您的剖析器可以理解的地方。
下面的一對選項描述了文件的記錄格式,這些選項也是在mysqlimport工具中可以用的。他們在這里看起來有點不同。首先,要用到FIELDS關鍵字,如果用到這個關鍵字,MySQL剖析器希望看到至少有下面的一個選項:
TERMINATED BY character
ENCLOSED BY character
ESCAPED BY character
這些關鍵字與它們的參數跟mysqlimport中的用法是一樣的. The
TERMINATED BY 描述欄位的分隔符,默認情況下是tab字元(\t)
ENCLOSED BY描述的是欄位的括起字元。比方以引號括起每一個欄位。
ESCAPED BY 描述的轉義字元。默認的是反些杠(backslash:\ ).
下面仍然使用前面的mysqlimport命令的例子,用LOAD DATA INFILE語句把同樣的文件導入到資料庫中:
LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ','
ENCLOSED BY '"';
LOAD DATA INFILE語句中有一個mysqlimport工具中沒有特點:LOAD DATA INFILE 可以按指定的列把文件導入到資料庫中。
當我們要把數據的一部分內容導入的時候,這個特點就很重要。比方說,我們要從Access資料庫升級到MySQL資料庫的時候,需要加入一些欄目(列/欄位 /field)到MySQL資料庫中,以適應一些額外的需要。這個時候,我們的Access資料庫中的數據仍然是可用的,但是因為這些數據的欄目 (field)與MySQL中的不再匹配,因此而無法再使用mysqlimport工具。盡管如此,我們仍然可以使用LOAD DATA INFILE,下面的例子顯示了如何向指定的欄目(field)中導入數據:
LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);
如您所見,我們可以指定需要的欄目(fields)。這些指定的欄位依然是以括弧括起,由逗號分隔的,如果您遺漏了其中任何一個,MySQL將會提醒您^_^ 。

2. 如何將sql server中資料庫中的數據導出

第一步,右鍵要導出的資料庫,任務--生成腳本

第二步,在設置腳本編寫選項處,點擊--高級(A),選擇要編寫腳本的數據的類型為:架構和數據

如果找不到 要編寫腳本的數據的類型 ,可以看下圖,sql2008(有多個版本),把編寫數據的腳本設置為TRUE即可

第三步:選擇要保存的地方,一直下一步就可以了
第四步:在要導入的資料庫中新建查詢:從SET ANSI_NULLS ON 處開始執行(可以刪除這句前面所有語句)

方法二: 分離和附加(導入與導出) sql2008數據(全部)
第一步:右鍵資料庫,任務--分離--刪除連接,更新... 打勾,確定

第二步:復制分離出來的數據(一般在Data目錄下),包含兩個文件mdf和ldf

第三步:右鍵資料庫(總的)--附加,在跳出的對話框中擊添加,再指定剛才的mdf文件

3. 資料庫以insert語句形式從表中導出數據

既然有人提出用語句實現,那我們就用語句,我把她做成一個存儲過程,在環境sql2005下測試通過,有一點說明:表中的欄位值不能為空,否則將返回一個空值:

第一步:--首先創建一張結果表,保存要輸出的數據

createtableout_data

(flagint,--標識

tb_namevarchar(1000),--表名稱

insert_infovarchar(8000))--插入的語句

第二步,創建存儲過程:

createproc[dbo].[out_table_data]

@tb_namevarchar(1000)--表名稱

as

declare@strvarchar(8000),--存放欄位名稱

@insert_strvarchar(8000),--存放處理結果串

@blvarchar(8000),--存放變數及其數據類型

@bl2varchar(8000),--存放變數名稱

@bl3varchar(8000),--數據類型

@bdvarchar(1000),--引號使用開始

@bd2varchar(1000),--引號使用結束

@sum_strvarchar(8000),--存放賦值變數和欄位

@sum_str_columnvarchar(8000),--存放要提取的變數欄位

@jvarchar(3000),--欄位個數

@ivarchar(3000)--循環起始量

set@str=''

set@bl='declare'--聲明變數(保留中間的空格)

set@bl2=''

set@bl3=''

set@i=1

set@sum_str=''

set@sum_str_column=''

set@bd='''''''+'

set@bd2='+'''''''

--欄位個數

select@j=count(a.[name])

onA.id=B.idandb.name=@tb_name

--自動定義變數放入串@bl中(casewhenc.[name]in('char','nchar','varchar','nvarchar')then'('+convert(varchar(500),a.length)+')'else''end)

select@bl=@bl+'@'+a.[name]+''+'varchar(8000)'+',',@bl3=@bl3+c.[name]+','onA.id=B.id

innerjoinsystypesc

onA.xtype=C.xusertype

andb.name=@tb_name

set@bl=left(@bl,len(@bl)-1)

--要查詢的表欄位名放入串@str中

select@str=@str+a.[name]+',',@bl2=@bl2+'@'+a.[name]

onA.id=B.idandb.name=@tb_name

set@str=left(@str,len(@str)-1)

set@bl2=@bl2+'@'

while@i<=@j

begin

set@sum_str_column=@sum_str_column+@bd+isnull(left(@bl2,charindex('@',right(@bl2,len(@bl2)-1))),0)+@bd2+','

set@sum_str=@sum_str+left(@bl2,charindex('@',right(@bl2,len(@bl2)-1)))+'='+left(right(@bl2,len(@bl2)-1),charindex('@',right(@bl2,len(@bl2)-1))-1)+','

set@bl2=right(@bl2,len(@bl2)-charindex('@',right(@bl2,len(@bl2)-1)))

set@bl3=right(@bl3,len(@bl3)-charindex(',',@bl3))

set@i=@i+1

end

set@sum_str=left(@sum_str,len(@sum_str)-1)

set@sum_str_column=left(@sum_str_column,len(@sum_str_column)-1)

--執行處理過程,在臨時表中進行

set@insert_str=''+@bl+'

declare@maxint,@minint

selectidentity(int,1,1)flag,'+@str+'into#tmpfrom'+@tb_name+'

select@min=min(flag),@max=max(flag)from#tmp

while@min<=@max

begin

select'+@sum_str+'from#tmpwhereflag=@min

insertintoout_data(flag,tb_name,insert_info)

select@min[id],'''+@tb_name+'''tb_name,''insertinto'+@tb_name+''+'('+@str+')values('+@sum_str_column+')''names

set@min=@min+1

end'

exec(@insert_str)

--print@insert_str

第三步、獲取你要的結果信息,如要批量,循環該過程就可以了

execout_table_data'net_code'

返回結果:

select*fromout_datawheretb_namelike'%net_code%'

4. 如何將資料庫里的數據導出成insert

用plsql導出就行
1、登錄後,依次點擊,工具—導出表
2、然後選擇「SQL插入」,上邊摁ctrl選擇表,選好路徑,點導出就行了

5. 如何將資料庫里的數據導出成insert

方法/步驟

1
很多時候我們在生產資料庫上面只能進行簡單的查詢,是不能增刪查改的。但是又想使用真實的數據。

2
如果用plsql develop是可以實現將數據導出成insert語句的。但是導出之後是全部的列都會出現在insert語句裡面。

3
遇到一些空值,日期之類的還要處理一下才行,而且有很多列是自己不需要的。

4
這個時候就需要用sql來構造insert語句了。他是比較自由和靈活的,可控制性比較強。

5
例如:我這里有一個city的表。看看我是如何構造insert語句的吧!
select * from city;

6
我sql語句如下:
select 'insert into table_name (pro,city) values ('''+province+''','''+city+''');' sql_str
from city;

7
好了,這樣就可以排量的將某個表導出成insert語句了。

6. sql server 2008 怎麼導出insert語句

  1. 在所需要導出資料庫上右鍵 選擇[任務] 然後選擇[生成腳本]

  2. 選擇資料庫,點擊下一步到[數據腳本選項]

    編寫數據的腳本 選擇為true 這一步很重要

  3. 下一步選擇要導出的對象

  4. 下一步選擇表

  5. 點擊完成 等待資料庫相應

    ok


7. 如何將資料庫中的數據導出到excel

首先,我們需要打開電腦上的Navicat for MySQL快捷鍵。這樣就可以查看資料庫了。
然後,我們點擊root打開之後,單擊core_db,在展開的選項中可以看到表。
我們點擊「表」後可以看到資料庫中的所有表,我們右擊表彈出的選項中有一個「導出向導」
我們點擊導出向導就會彈出導出的頁面,第一個頁面提示我們要使用哪一種導出格式。因為我們是導出到EXCEL表中,所以選擇導出的格式為.xls,然後單擊「下一步」
第二個小步驟中,我們需要勾選需要導出的表,並設置導出文件所在位置,然後點擊下一步
我們可以選擇需要導出的表中的哪些數據,默認的是全部欄位。選好之後,單擊下一步。
點擊下一步之後,我們再次點擊下一步,然後點擊彈出的窗口的右下角的「開始」按鈕,就開始導出了。
導出之後,會繼續提示我們已經導出成功,然後我們只需要點擊關閉按鈕,在相應的位置尋找excel表格即可。打開之後就會看到之前在資料庫中存儲的數據。

8. 如何導入導出 sql資料庫簡單方法與大家分享

1、右鍵點擊「SQL Server組」,點擊「新建SQL Server注冊」

2、輸入您所購買的資料庫的IP地址,並點擊「添加」、「下一步」

3、點擊第二項「(SQL Server身份驗證)」、「下一步」

4、輸入您的資料庫用戶名和密碼(在購買時所填寫的),點擊「下一步」,點擊「完成」

5、資料庫連接成功

6、資料庫的操作與在本地一樣

7、右鍵點擊您自己的資料庫名,點擊「所有任務」、「導出數據」。點擊「下一步」

8、輸入伺服器IP地址、點擊「使用SQL Server身份驗證」、輸入用戶名及密碼、選擇資料庫,點擊「下一步」

9、點擊您需要導出的表名、點擊「下一步」

10、再次點擊「下一步」

11、數據導出成功

9. 如何將資料庫里的數據導出成insert

方法/步驟

1
很多時候我們在生產資料庫上面只能進行簡單的查詢,是不能增刪查改的。但是又想使用真實的數據。

2
如果用plsql develop是可以實現將數據導出成insert語句的。但是導出之後是全部的列都會出現在insert語句裡面。

3
遇到一些空值,日期之類的還要處理一下才行,而且有很多列是自己不需要的。

4
這個時候就需要用sql來構造insert語句了。他是比較自由和靈活的,可控制性比較強。

5
例如:我這里有一個city的表。看看我是如何構造insert語句的吧!
select * from city;

6
我sql語句如下:
select 'insert into table_name (pro,city) values ('''+province+''','''+city+''');' sql_str
from city;

7
好了,這樣就可以排量的將某個表導出成insert語句了。

http://jingyan..com/article/fc07f989761b0e12ffe51938.html