一、導入.sql文件
1.MySQL命令導入數據
基本語法:mysql -h服務器地址 -u用戶名 -p 數據庫名< 要導入的數據庫文件路徑
例:導入G:/mydb.sql
2.source命令導入數據
基本語法:source 數據庫文件路徑;
例:導入G:/mydb2.sql
二、導入.csv/.txt文件
1.load data 導入數據
基本語法:
load data [low_priority] [local] infile 'file_name txt' [replace|ignore]
into table tbl_name
[fields
[terminated by't']
[optionally] enclosed by '']
[escaped by'' ]]
[lines terminated by 'n']
[ignore n lines]
[(col_name, )]
low_priority:load data語句的執行被推遲到沒有其他客戶讀取表之后。
local:從客戶主機上按路徑讀取文件。若省略,則文件在服務器上按路徑讀取文件。
replace|ignore:控制對現有的唯一鍵記錄的重復的處理。若指定replace,刪除原有行,插入新行。若指定ignore,則保留原有行,跳過相同值的新行。若不指定,則找到重復鍵值時,出現一個錯誤,且文本文件的余下部分將被忽略。
fields terminated by:指定字段間的分隔符,默認't'。
lines terminated by:指定每行結尾的字符,默認'n'。
如果fields和lines兩個同時被指定,fields必須在lines之前。
fields [optionally] enclosed by:指定字段包圍字符,若省略optionally,則所有的字段由enclosed by字符包圍,反之,則enclosed by字符僅被用于包圍char和varchar字段。
fields escaped by:指定轉義字符,默認''
ignore n lines:忽視文件的前幾行
(col_name, ):指定插入數據時表中列的順序,若省略,則按默認順序插入數據。
例:向user表插入文件'G:/用戶表.txt'中數據。
用戶表.txt中數據如下:
數據導入:
注:character set utf8/gbk這個字符集必須要寫,若省略,可能會出現亂碼或者只導入一部分數據。
2.mysqlimport導入數據
基本語法:mysqlimport -h服務器地址 -u 用戶名 -p [--local] 數據庫名 文件路徑 [options]
options常用選項:
-d or --delete:導入數據前刪除原數據表中的所有信息。
-f or --force:不管是否遇到錯誤,mysqlimport將強制繼續插入數據
-i or --ignore:導入數據時跳過有相同唯一關鍵字的新行,保留原有行。
-r or -replace:用新行代替原數據表中有相同唯一關鍵字的記錄。
-l or -lock-tables:導入數據前鎖住原數據表。
--fields-terminated-by=name:設置字段間的分隔符,默認't'
--fields-optionally-enclosed-by=name:設置字段包圍字符
--fields-escaped-by=name:設置轉義字符,默認''
--lines-terminated-by=name:設置每行結尾的字符,默認'n'
--ignore-lines=n:忽視文件的前幾行
mysqlimport命令無需指定表名,而是根據文件名作為表名,該數據表在導入數據時必須存在。
--local:是在本地計算機中查找文件時使用(指定--local后,文件可以放在任何地方進行導入,否則文件只能放在mysql的data目錄下或者指定絕對路徑)。
例:向user2表插入G:\user2.csv文件中數據。
user2.csv中數據如下:
數據導入: