程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> CSV文件導入數據庫 :D,csv導入數據庫

CSV文件導入數據庫 :D,csv導入數據庫

編輯:MySQL綜合教程

CSV文件導入數據庫 :D,csv導入數據庫


CSV導入數據庫總結:

1.  打開CSV文件,分析文件結構:

    粗略看過之後發現,基本所有的字段都比較短,為了快速建表,我們可以簡單的使用varchar(20)來定義每個字段的類型(!注意,實際開發中,一定要根據自己的數據類型選擇合適的字段類型,這裡我們偷懶,犧牲的當然是性能和存儲空間)。

2.  根據csv的字段建表:

右鍵點擊第一行復制,復制所有字段Header(以空白分割)。

腳本生成數據庫創建代碼:

<?php
$columns_line = "Name   CardNo  Descriot    CtfTp   CtfId   Gender  Birthday    Address Zip Dirty   District1   District2       District3   District4   District5   District6   FirstNm LastNm  Duty    Mobile  Tel Fax EMail   Nation  Taste   Education   Comp    any CTel    CAddress    CZip    Family  Version id";
$columns = preg_split("/\s+/",trim($columns_line));

$chars   = "create table kf_info(";
foreach( $columns as $col ){
           $chars .= "$col varchar(20) not null default '' ";
           if($col != end($columns)){
                    $chars .= ",";
           }
           $chars .= PHP_EOL;
}

$chars .= ") engine=myisam default charset=utf8;";
echo $chars;

生成的create table SQL語句:

create table kf_info(Name varchar(20) not null default '' ,
	CardNo varchar(20) not null default '' ,
	Descriot varchar(20) not null default '' ,
	CtfTp varchar(20) not null default '' ,
	CtfId varchar(20) not null default '' ,
	Gender varchar(20) not null default '' ,
	Birthday varchar(20) not null default '' ,
	Address varchar(20) not null default '' ,
	Zip varchar(20) not null default '' ,
	Dirty varchar(20) not null default '' ,
	District1 varchar(20) not null default '' ,
	District2 varchar(20) not null default '' ,
	District3 varchar(20) not null default '' ,
	District4 varchar(20) not null default '' ,
	District5 varchar(20) not null default '' ,
	District6 varchar(20) not null default '' ,
	FirstNm varchar(20) not null default '' ,
	LastNm varchar(20) not null default '' ,
	Duty varchar(20) not null default '' ,
	Mobile varchar(20) not null default '' ,
	Tel varchar(20) not null default '' ,
	Fax varchar(20) not null default '' ,
	EMail varchar(20) not null default '' ,
	Nation varchar(20) not null default '' ,
	Taste varchar(20) not null default '' ,
	Education varchar(20) not null default '' ,
	Company varchar(20) not null default '' ,
	CTel varchar(20) not null default '' ,
	CAddress varchar(20) not null default '' ,
	CZip varchar(20) not null default '' ,
	Family varchar(20) not null default '' ,
	Version varchar(20) not null default '' ,
	id varchar(20) not null default ''
) engine=myisam default charset=utf8;

你也可以直接在你的php腳本中直接執行mysql_query.

數據庫總算是建好了:

 

3.  導入數據

現在,可以導入csv文件了。mysql提供了load data infile可以輕松導入:

load data infile 'D:/2000W/200W-400W.csv'   into table kf_info    fields terminated by ','  optionally enclosed by '"' escaped by '"'   lines terminated by '\r\n';

不幸的是,報錯了:

仔細看紅色標注部分可知,這是UTF-8的BOM頭。

去掉BOM都之後再次嘗試,總算是成功了。

查找記錄:

select Name,CtfId,Birthday,Address,Mobile from kf_info where address like "北京市%" and gender='F';

艾瑪,什麼信息都有,電話號碼,住址,身份證號..網絡真是一個可怕的東西。

 

現在,你還相信網絡安全麼?

ps: 本文純技術討論,你可以把它理解為:如何將CSV文件導入數據庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved