將excel文件導入到資料庫

  • 2019 年 10 月 5 日
  • 筆記

參考:http://blog.csdn.net/jayxujia123/article/details/13684313

參考:http://kevin850115.iteye.com/blog/578142

MySQL官網:http://dev.mysql.com/doc/refman/5.7/en/load-data.html

學弟有個面試題,在群里問了下如何將excel文件導入到資料庫。以前也沒試過,正好在學習MySQL,練練手吧。

首先,將excel文件另存為用逗號分隔的csv文件,傳到linux伺服器上,假設叫做test.csv。

用sed命令將第一行的列名稱去掉sed -i '1p' test.csv 

然後建庫建表的命令的就得手工進行了,根據具體的表結構,大致命令如下:

> CREATE DATABASE `demo`;

> USE demo;

> CREATE TABLE `tb1` (

  `id` int(4) NOT NULL PRIMARY KEY ,

  `Name` char(10) DEFAULT NULL,

  `Age` smallint(3) DEFAULT NULL,

  `Sex` varchar(10) DEFAULT NULL,

  `Mobile` bigint(15) DEFAULT NULL,

  `Touzijingli` varchar(10) DEFAULT NULL,

  `Job` varchar(10) DEFAULT NULL,

  `Uname` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(隨便測試的,因此欄位類型選擇有點隨意,請大家無視)

> desc tb1;

確保表結構和我們的原始EXCEL 的一致後,可用執行導入數據操作了,如下:

> load data local infile '/root/test.csv' into table tb1 fields

  terminated by ','

  optionally enclosed by '"'

  escaped by '"' 

  lines terminated by 'rn';

參數說明:

terminated by 跟的是欄位間的分隔符。 

optionally enclosed by   '"' 的意思就是無視這些個雙引號

escaped by 字元轉義,默認的是反斜杠(backslash: )  

lines terminated by 'rn';   換行標誌。windows下的換行是rn

官網更詳細的格式如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'    [REPLACE | IGNORE]    INTO TABLE tbl_name    [PARTITION (partition_name,…)]    [CHARACTER SET charset_name]    [{FIELDS | COLUMNS}        [TERMINATED BY 'string']        [[OPTIONALLY] ENCLOSED BY 'char']        [ESCAPED BY 'char']    ]    [LINES        [STARTING BY 'string']        [TERMINATED BY 'string']    ]    [IGNORE number {LINES | ROWS}]    [(col_name_or_user_var,…)]    [SET col_name = expr,…]

Exit mobile version