CSV檔案匯入MySQL

2021-08-19 22:25:50 字數 2950 閱讀 5338

1、首先看一下我本次匯入的資料,比較簡單;

(1)在資料庫中首先建立了乙個名為「test」的資料庫,在test資料庫下建立了乙個名為「student」的**,**屬性如下:

column name

datatype

note

idint(11)

primary key, not null

name

varchar(45)

password

varchar(45)

(2)csv檔案的儲存內容如下,命名為test1.csv,儲存位置:「f:/mysqldata/test1.csv」:

(如果是已知excel檔案,則將檔案另存為.csv檔案即可,千萬不要直接改變檔案的字尾名)

(3)這一步很重要:驗證.csv編碼格式是否正確,務必保證匯入資料的編碼格式是ansi編碼格式

使用notepad++開啟test1.csv,若編碼格式不正確,改變編碼格式,如下圖:

第一種情況:匯入部分不包含中文字型

開啟mysql命令視窗,輸入密碼

(1)查詢已有資料庫,使用命令

[sql]view plain

copy

show databases;   

執行結果如下圖:

test便是之前建立的資料庫。

(2)使用這個資料庫,使用命令

[sql]view plain

copy

use test;  

(3)查詢我們之前建立的**student是否在test資料庫中,使用命令

[sql]view plain

copy

show tables;   

結果如下圖:

(4)使用下面的命令將test1.csv匯入mysql:

[sql]view plain

copy

load data infile 'f:/mysqldata/test1.csv'

--csv檔案存放路徑

into

table student--要將資料匯入的表名

fields terminated by

',' optionally enclosed by

'"' escaped by

'"'lines terminated by

'\r\n';  

執行結果如下圖,使用select * from student;檢視已匯入的資料:

第二種情況:匯入資料報含中文字型

只需要將上述匯入不包含中文的情況中的匯入sql語句變成(加入編碼格式)

[sql]view plain

copy

load data infile 'f:/mysqldata/test1.csv'

--csv檔案存放路徑

into

table student character

set gb2312 --要將資料匯入的表名

fields terminated by

',' optionally enclosed by

'"' escaped by

'"'lines terminated by

'\r\n';  

結果如下圖:

可能出現的問題及解決方案:

error 1261(01000):row xx doesn't contain data for all columns

method:本錯誤資訊提示第xx行資料不足,檢視你資料庫表中建立的字段和資料中提供的字段數目是否相同,只有二者數目一致,才可以匯入。

error 1366(hy000)

:incorrect string value: '\x95f\xbe\xf4\xc6\xfb...' for column 'enterprise' at row xx

method:

本錯誤資訊提示第xx行『enterprise』字段出現不正確的字元,

查詢之後發現我在這個欄位的資料含有2個比較複雜的漢字「

旻爵」,可能無法識別,把這2個字去掉之後這個錯誤便消失了。

error 1366(hy000)

:incorrect integer value: ' ' for column 'money' at row xx

method:本錯誤資訊提示第xx行出現不正確的int值,可能原因是資料庫「money」字段定義的資料型別是int型,而資料中儲存的卻不是int型(可能是double型、float型之類的)--這種情況一般是資料型別出現不一致的問題。

error 1265(01000):data truncated for column 'money' at row xx

method:本錯誤資訊提示第xx行資料被截斷,可能原因是資料庫中『money』欄位是double型或者float型,但是資料檔案中可能存在null值,即這個資料值可能是不存在的,解決方案是將這個缺失的字段補『0』。

Mysql 匯入csv檔案

mysql load data infile命令可以把csv平面檔案中的資料匯入到資料庫中。linux下 load data infile home test dump ip location.csv into table ip location character set utf8 fields ...

Mysql 匯入csv 檔案

mysql 匯入csv檔案 mysql預設檔案存放位址是 var lib mysql files 可修改 window 生成的csv檔案 需要lines terminated by r n 加 r linux 生成的csv檔案只需要 n 就可以 如果有中文標題 最好刪除後在用 ignore 0 如果...

mysql 匯入csv檔案

linux 用 shell 指令碼 批量 匯入 csv 檔案 到 mysql 資料庫 前提 每個csv檔案第一行為欄位名 建立的資料庫欄位名同csv 檔案的欄位名 1.批量匯入 多個 csv 檔案 for file in csv do mv file tablename.csv mysqlimpor...