MySQL 数据导入

MySQL 数据导入


数据:本文练习文档在文末下载

一、数据导入


第一步:新建一个数据库来存储改练习数据


create database `Practice`;  #新建一个名称为Practice的数据库 

第二步:根据练习数据的结构建立新表


在建立新表的同时,注意根据数据指定字段的数据类型。

create table `用户信息`(
用户ID int,
注册日期 date,
身份证号码 varchar(32),
性别 char(4),
出生日期 date,
年龄 int
);

第三步:导入数据


LOAD DATA LOCAL INFILE 'D:\\MySQL\\2.1\\data.txt' INTO TABLE 用户信息     #导入数据的文件路径和导入到的表名称,导入的文件名不要使用中文名
CHARACTER SET 'UTF8'                    #指定文件的编码
COLUMNS TERMINATED BY ','       #指定数据列之间的分割符号
LINES TERMINATED BY '\n'            #指定数据行之间的分割
IGNORE 1 ROWS;                     #忽略第一行,练习数据第一行为表头

第四步:查看导入的数据是否导入成功


SELECT * FORM `Practice`.用户信息

以上为数据导入的完全流程,从建表到数据导入,这是一种很好的情况。下面说一下一些其他情况的数据导入。

二、表结构列多余导入数据列数


处理方式:指定导入数据的列

LOAD DATA LOCAL INFILE 'D:\\MySQL\\2.1\\data.txt' INTO TABLE 用户明细1
CHARACTER SET 'UTF8'
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(用户ID,注册日期,身份证号码,性别,出生日期,年龄);     #根据导入数据的内容指定导入到表格中的列中

三、表结构列少于导入数据列数


LOAD DATA LOCAL INFILE 'D:\\MySQL\\2.1\\data.txt' INTO TABLE 用户明细2
CHARACTER SET 'UTF8'
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(用户ID,注册日期,@身份证号码, 性别,出生日期,年龄);              #@表明在数据导入将该字段作为变量

四、导入数据中的部分数据为灵活数据


例:本文案例中的年龄,如果获取该数据的时间与导入数据的时间不相同,那么年龄就可能存在不对的情况,这时原始数据中的年龄就有可能不对

处理方式  使用年龄计算函数处理

LOAD DATA LOCAL INFILE 'D:\\MySQL\\2.1\\data.txt' INTO TABLE 用户明细3
CHARACTER SET 'UTF8'
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(用户ID,注册日期,@身份证号码, 性别,出生日期,@年龄)
set 年龄=TIMESTAMPDIFF(YEAR, 出生日期, now());

[mark]MySQL导入语法:[/mark]

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name [, 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
[, col_name_or_user_var] ...)]
[SET col_name={expr | DEFAULT},
[, col_name={expr | DEFAULT}] ...]