如何从CSV文件导入数据到数据库
How to import data from CSV file to database
我有一个包含 13 列的 csv 文件,其中每一列都有大量数据,我需要的是能够将这些数据从 .csv 文件中提取到 mysql 数据库中。
首先,我需要帮助为 csv 文件的每一列创建特定的 table,因为我对 mysql 很陌生,而且我不太确定哪些属性分配给每个 table。
这是 csv 文件的结构...
列
pid, start_time, end_time, epoch_start, epoch_end, complete_title, media_type, masterband, service, brand_pid, is_clip、类别、标签
列下的数据
p00547jm (pid), 1003394820 (start_time), 1003999620 (end_time), 2001-10-18T08:47:00 (epoch_start), 2001-10-25T08:47:00 ( epoch_end), in_our_time:_democracy (complete_title), 音频 (media_type), bbc_radio_four (母带), bbc_radio_four (服务), b006qykl (brand_pid),0 (is_clip), [9100005:1:factual.9200041:2:arts_culture_and_the_media.9200055:2:history] (类别), [democracy.history.philosophy.plato.ancient_greece] (标签)
这将生成创建 table 查询 $1 将成为 table 名称
[Create mysql table directly from CSV file using the CSV Storage engine?
#!/bin/sh
# pass in the file name as an argument: ./mktable filename.csv
echo "create table ( "
head -1 | sed -e 's/,/ varchar(255),\n/g'
echo " varchar(255) );"
然后您可以读取文件并将您的插入逻辑放入 while 循环
[Import CSV into MYSQL but ignore header row
//打开csv文件进行读取
$handle = fopen($file_path, 'r');
// read the first line and ignore it
fgets($handle);
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
// do your thing
}
先创建您的table,然后再使用
LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename
FIELDS TERMINATED BY ',';
将文件中的数据插入新的 table。
此外,请确保在登录 MySQL 时使用
mysql -uusername -ppassword --local-infile
关于创建 table:
我们可以提供语法,但无法为您编写整个查询。有必要的数据,你可以自己试试。
create table table_name (col1 datatype(size) NOT NULL primary key,
col1......);
我有一个包含 13 列的 csv 文件,其中每一列都有大量数据,我需要的是能够将这些数据从 .csv 文件中提取到 mysql 数据库中。
首先,我需要帮助为 csv 文件的每一列创建特定的 table,因为我对 mysql 很陌生,而且我不太确定哪些属性分配给每个 table。
这是 csv 文件的结构...
列 pid, start_time, end_time, epoch_start, epoch_end, complete_title, media_type, masterband, service, brand_pid, is_clip、类别、标签
列下的数据 p00547jm (pid), 1003394820 (start_time), 1003999620 (end_time), 2001-10-18T08:47:00 (epoch_start), 2001-10-25T08:47:00 ( epoch_end), in_our_time:_democracy (complete_title), 音频 (media_type), bbc_radio_four (母带), bbc_radio_four (服务), b006qykl (brand_pid),0 (is_clip), [9100005:1:factual.9200041:2:arts_culture_and_the_media.9200055:2:history] (类别), [democracy.history.philosophy.plato.ancient_greece] (标签)
这将生成创建 table 查询 $1 将成为 table 名称
[Create mysql table directly from CSV file using the CSV Storage engine?
#!/bin/sh
# pass in the file name as an argument: ./mktable filename.csv
echo "create table ( "
head -1 | sed -e 's/,/ varchar(255),\n/g'
echo " varchar(255) );"
然后您可以读取文件并将您的插入逻辑放入 while 循环
[Import CSV into MYSQL but ignore header row //打开csv文件进行读取 $handle = fopen($file_path, 'r');
// read the first line and ignore it
fgets($handle);
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
// do your thing
}
先创建您的table,然后再使用
LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename
FIELDS TERMINATED BY ',';
将文件中的数据插入新的 table。
此外,请确保在登录 MySQL 时使用
mysql -uusername -ppassword --local-infile
关于创建 table:
我们可以提供语法,但无法为您编写整个查询。有必要的数据,你可以自己试试。
create table table_name (col1 datatype(size) NOT NULL primary key,
col1......);