日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql导入表格,txt操作(以及常见问题解决方法)

發布時間:2024/9/30 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql导入表格,txt操作(以及常见问题解决方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在現實生活中,我們可能需要往數據庫中插入大量數據。
這時候我們可以直接將表格導入到數據庫中。

示例1.導入txt

原始數據

第一步:創建表

CREATE TABLE IF NOT EXISTS POWER(useshuju INT(50) ); DESC POWER; SELECT * FROM POWER;

第二步:插入

語法
LOAD DATA LOCAL INFILE ‘文件路徑’
INTO TABLE 表名
CHARACTER SET utf8
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\r\n’
IGNORE 1 LINES;#忽略表頭,即表頭不插入

LOAD DATA LOCAL INFILE 'C:\\Users\\Shineion\\Desktop\\shuju.txt' INTO TABLE POWER CHARACTER SET utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

說明下:

1.文件路徑\或者/。路徑問題,注意windows 下\和linux 下/的區別。
2.必須加local,如果不加,寫成這樣LOAD DATA INFILE,可能會出現錯誤
找不到文件。
fields terminated by ‘,’    ------字段間以,號分隔
optionally enclosed by ‘"’  ------字段用"號括起
escaped by ‘"’       ------字段中使用的轉義符為"
lines terminated by ‘\r\n’ ------行以\r\n結束
(字段1,字段2,字段3);#字段可以不寫,如果寫即表示數據庫的表和本地的表不是一一對應,數據庫的表字段多余本地表。

第三步:查詢

SELECT * FROM POWER;

示例2,導入csv

由于表格很多時候是gbk編碼.
我們需要轉換成utf8編碼.

現在是這樣處理的:
第一步,用Excel創建文件,另存為 .csv 格式;
第二步,用記事本打開 CSV 文件,然后另存為 UTF-8 格式

將問題轉換成txt文件導入。

得到的文件示意圖。

代碼

CREATE TABLE IF NOT EXISTS POWER(id INT(50),#序號va FLOAT(50),#valuestimes DATETIME,#時間 timemins FLOAT(32),#minutehou FLOAT(32),#hourdom FLOAT(32)#dom ); DESC POWER; SELECT * FROM POWER;LOAD DATA LOCAL INFILE 'C:\\Users\\Shineion\\Desktop\\chufang.txt' INTO TABLE POWER CHARACTER SET utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

CHARACTER SET utf8:因為有中文數據,所以指定utf-8編碼。

FIELDS TERMINATED BY ‘,’:csv文件以 ‘,’ 分隔數據。
.IGNORE 1 LINES:跳過原始文件中的第一行表頭數據。如果不寫,表頭會被當作數據導入。如果要跳過從頭開始的多行,可以改變LINES前面的數字。
可以在插入語句最后一列加上字段。 要導入數據的字段放在最后,將字段順序和原始文件里的順序保持一致。

常見問題

問題1:文件的絕對路徑不能有中文,有中文運行結果顯示
文件找不到。
File ‘C:\Users\Shineion\Desktop\數據.txt’ not found (Errcode: 2)

問題2:ERROR 1148 (42000): The used command is not allowed with this MySQL version
錯誤語句:mysql> LOAD DATA LOCAL INFILE ‘/var/lib/mysql/pet.txt’ INTO TABLE tbl_pet;
出錯原因:多了一個LOCAL關鍵詞。當文件在客戶機端時要寫LOCAL,在服務器端時不用寫。我的txt文件是和MySQL數據庫在同一虛擬機上的,所以不用加LOCAL。
問題3ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

出錯原因:MySQL設置了secure-file-priv屬性對應的路徑,當數據文件從其他路徑導入時便會報錯。
解決辦法:查看secure-file-priv指定路徑并把數據文件放進去。

show variables like '%secure%';

問題4 ERROR 1292 (22007): Incorrect date value: ‘’ for column ‘death’ at row 1

出錯原因:一開始直接把原始表格里的數據復制到txt文件里沒有處理,空值的地方是空的,不符合MySQL里空值的表示方式,所以報錯。

解決辦法:將空值用\N代替。參考https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html

問題5 使用 LOAD DATA INFILE ‘/var/lib/mysql-files/pet.txt’ INTO TABLE tbl_pet; 導入數據仍然失敗

錯誤提示:’ for column ‘death’ at row 1 date value: 'N

出錯原因:fields terminated by 默認值是’\t’,lines terminated by 默認值是’\n’,而Windows上的文件換行是’\r\n’,Mac OS X是’\r’。

解決辦法:加上LINES TERMINATED BY ‘\r\n’,如下:

mysql> LOAD DATA INFILE ‘/var/lib/mysql-files/pet.txt’ INTO TABLE tbl_pet LINES TERMINATED BY ‘\r\n’;

本篇博客有借鑒https://blog.csdn.net/u013378642/article/details/81220809

電氣工程的計算機萌新:余登武。寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結

以上是生活随笔為你收集整理的mysql导入表格,txt操作(以及常见问题解决方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。