登入 mysql
mysql -u root -p
列出所有資料庫
show databases;
列出所有資料表
show tables;
參考:http://note.drx.tw/2012/12/mysql-syntax.html
2017年5月25日 星期四
2017年5月9日 星期二
MSSQL Bulk Insert 匯入文字檔
用 Bulk Insert 載入文字檔實例
假設我們有一個文字檔, 要寫入 table: StList 中, 且 StList schema 如下:
CREATE TABLE StList
(
StFName nvarchar(50) NOT NULL,
StLName nvarchar(50) NOT NULL,
StEmail nvarchar(100) NOT NULL
)
go
文字檔型態一:
Kelly中文,Reynold,kelly@reynold.com
John鮰,Smith,bill@smith.com
Sara,Parker,sara@parker.com
這個例子較簡單, 因此我們直接用下述語法:
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = ',',CODEPAGE = '65001')
文字檔型態二:
"Kelly","Reynold","kelly@reynold.com"
"John","Smith","bill@smith.com"
"Sara","Parker","Parker"
這個例子就比較麻煩了, 若直接用以下語法,
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = '","',CODEPAGE = '65001')
因為每個欄位的資料前後都有 double quote, 若直接用 "," 分開, 將造成"最前面"和"最後面"的double quote 拿不掉, 也就是會變成:
"Kelly Reynold kelly@reynold.com"
"John Smith bill@smith.com"
"Sara Parker Parker"
可改用以下程式處理:
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = '","')
UPDATE StList SET StFName = SUBSTRING(StFName,2,DATALENGTH(StFName)-1) -- 【"Kelly】 變 【Kelly】
UPDATE StList SET StEmail = SUBSTRING(StFName,1,DATALENGTH(StEmail )-1) -- 【kelly@reynold.com"】 變 【kelly@reynold.com】
PS:若沒有支援 65001 參考:https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql
參考來源:http://cbw0731.pixnet.net/blog/post/24994515
假設我們有一個文字檔, 要寫入 table: StList 中, 且 StList schema 如下:
CREATE TABLE StList
(
StFName nvarchar(50) NOT NULL,
StLName nvarchar(50) NOT NULL,
StEmail nvarchar(100) NOT NULL
)
go
文字檔型態一:
Kelly中文,Reynold,kelly@reynold.com
John鮰,Smith,bill@smith.com
Sara,Parker,sara@parker.com
這個例子較簡單, 因此我們直接用下述語法:
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = ',',CODEPAGE = '65001')
文字檔型態二:
"Kelly","Reynold","kelly@reynold.com"
"John","Smith","bill@smith.com"
"Sara","Parker","Parker"
這個例子就比較麻煩了, 若直接用以下語法,
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = '","',CODEPAGE = '65001')
因為每個欄位的資料前後都有 double quote, 若直接用 "," 分開, 將造成"最前面"和"最後面"的double quote 拿不掉, 也就是會變成:
"Kelly Reynold kelly@reynold.com"
"John Smith bill@smith.com"
"Sara Parker Parker"
可改用以下程式處理:
BULK INSERT StList FROM 'c:\TxtFile2.txt' WITH (FIELDTERMINATOR = '","')
UPDATE StList SET StFName = SUBSTRING(StFName,2,DATALENGTH(StFName)-1) -- 【"Kelly】 變 【Kelly】
UPDATE StList SET StEmail = SUBSTRING(StFName,1,DATALENGTH(StEmail )-1) -- 【kelly@reynold.com"】 變 【kelly@reynold.com】
PS:若沒有支援 65001 參考:https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql
參考來源:http://cbw0731.pixnet.net/blog/post/24994515
訂閱:
文章 (Atom)