• 1 数据集查看(EmEditor Pro64_18.6.6,查看数据样张)
打开EmEditor,拖入需要查看的csv数据文件,够用点击停止,切换成csv现实格式;收集分隔符信息
  • 2 导入
  • 2.1 Navicat导入
表对象,右键,或者上方点击,可以显示导入向导
选择源文件,以及源文件的字符编码集
源文件匹配的记录分隔符,字段分隔符,文本限定符;使用默认,尝试导入,如果导入失败,需要返回头来,调试;正确的分隔符,不仅适用于可视化导入,也对应于脚本批量导入的设置;
注意:字段行设置为1,第一个数据行设置为1,暂时测试一下;
注意,默认字段,和原始说明之间的差异,直接修改,也可以后续修改
预览:第一行(字段行),与第二行(数据起始行),重叠了,跟数据起始行设置为1有关;

当小样导入无异常时,可以删除表格,重新运行向导,批量导入大数据,性能较低,耗时较长;

  • 2.2 脚本导入
-- 创建数据库
drop database if EXISTS UserBehavior;
CREATE DATABASE IF NOT EXISTS UserBehavior CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; -- 引用数据库
use UserBehavior;-- 创建表
drop table if EXISTS UserBehavior;
create table UserBehavior(
ID          int not null AUTO_INCREMENT,
用户ID      varchar(255),
商品ID      varchar(255),
商品类目ID  varchar(255),
行为类型    varchar(255),-- 包含(商品详情页pv,buy商品购买,cart将商品加入购物车,fav收藏商品)
时间戳      varchar(255),      -- 时间戳,设置成数字型,会报错ERROR 1265 (01000): Data truncated for column '时间戳' at row 1
primary key(ID)
)AUTO_INCREMENT = 1;  -- 设定自增列ID从1开始自增-- 检查mysqld导入导出功能设置
/*
报错:[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
原因: 安装MySQL的时候限制了导入与导出的目录权限只能在规定的目录下才能导入导出
修正: 1:查找my.ini文件中secure-file-priv选项对应的目标文件(导入导出)目录,不是my-default.ini2: 修改选项,需要重启mysql服务器;或者将.csv文件直接拷贝到此目录下
*/
select @@basedir; -- 定位mysql安装文件夹              C:Program FilesMySQLMySQL Server 5.7,my-default.ini
select @@datadir; -- 定位mysqlProgramData目录文件夹   C:ProgramDataMySQLMySQL Server 5.7Data,mysql.ini
show variables like '%secure%';  -- 查看my.ini文件中  secure_file_priv = C:ProgramDataMySQLMySQL Server 5.7Uploads-- 批量导入数据(csv文件)
/*
CR:Carriage Return,对应ASCII中转义字符r,表示回车
LF:Linefeed,对应ASCII中转义字符n,表示换行
CRLF:Carriage Return & Linefeed,rn,表示回车并换行
众所周知,Windows操作系统采用两个字符来进行换行,即CRLF;
Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;
另外,MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。需要借助Navicat 客户端的导入向导,选择10行,精准的定位数据行分隔符,否则可能只能成功导入1行数据;
*//* 空值处理
字段中的空值 null 需要使用 N 表示,
如果用空字符串表示,那么根据不同的数据类型,MySQL 处理也各异数据库字段如果是varchar/char,插入空时,load data 默认导入 空字符串
数据库字段如果是decimal,插入空时,load data 默认导入 0.00000000
数据库字段如果是datetime,插入空时,load data 默认导入 0000-00-00 00:00:00
*/
-- 受影响的行: 100150807
-- 时间: 954.464s 约 15分钟
load data infile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/UserBehavior.csv' into table UserBehavior -- 设定文件,目标表格,全路径必须用/不是
character set utf8  -- 设定字符集
fields terminated by ',' -- 设置字段分隔符
enclosed by '"'          -- 设置文本限定符
lines terminated by 'n' -- 设置数据行分隔符,需要借助Navicat 客户端的导入向导,验证
(用户ID,商品ID,商品类目ID,行为类型,时间戳); -- 设置插入数值的字段,必须注意顺序,类型的匹配

数据验证

第一列,是自增列,后续5列为数据源值,没有乱码,正确
  • 3 脚本导出
/* 空值处理
字段中的空值 null 需要使用 N 表示,
如果用空字符串表示,那么根据不同的数据类型,MySQL 处理也各异数据库字段如果是varchar/char,插入空时,load data 默认导入 空字符串
数据库字段如果是decimal,插入空时,load data 默认导入 0.00000000
数据库字段如果是datetime,插入空时,load data 默认导入 0000-00-00 00:00:00
*/-- 检查mysqld导入导出功能设置
/*
报错:[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
原因: 安装MySQL的时候限制了导入与导出的目录权限只能在规定的目录下才能导入导出
修正: 1:查找my.ini文件中secure-file-priv选项对应的目标文件(导入导出)目录,不是my-default.ini2: 修改选项,需要重启mysql服务器;或者将.csv文件直接拷贝到此目录下
*/
select @@basedir; -- 定位mysql安装文件夹              C:Program FilesMySQLMySQL Server 5.7,my-default.ini
select @@datadir; -- 定位mysqlProgramData目录文件夹   C:ProgramDataMySQLMySQL Server 5.7Data,mysql.ini
show variables like '%secure%';  -- 查看my.ini文件中  secure_file_priv = C:ProgramDataMySQLMySQL Server 5.7Uploads--  批量导出数据(csv文件)
--  受影响的行: 100150807
--  时间: 189.626s ~ 3分钟
--  目标文件 5.18 GB (5,564,252,503 字节)select * from UserBehavior into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/UserBehavior2.csv' -- 设定文件,目标表格,必须全路径
character set utf8         -- 设定字符集
fields terminated by ','   -- 设置字段分隔符
optionally enclosed by '"' -- 设置文本限定符
lines terminated by 'n';  -- 设置数据行分隔符

datetime插入数据_SQL项目_(一)数据源准备相关推荐

  1. 数据科学项目_完整的数据科学组合项目

    数据科学项目 In this article, I would like to showcase what might be my simplest data science project ever ...

  2. ssm插入数据时候栈溢出_大话数据结构笔记(4)

    第四章 栈与队列 4.2 栈的定义 4.2.1 栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表,栈的特点是先进去的后出来,后进去的先出来,这种结构称之为后进先出(Last in Frist ou ...

  3. sql同时向两个表插入数据_SQL入门-数据库和客户端的安装,表的创建和数据插入...

    1.如何验证MySQL数据库安装成功 按照上图操作打开SQL命令行客户端 输入安装MySQL时设置的密码并按enter键,得到下图: 如果有显示出来红框里的内容,就表示安装成功.红框里的内容表示的是M ...

  4. mysql数据库插入数据为空_插入数据成功,但是数据库中显示为空(菜鸟提问)...

    插入数据成功,但是数据库中显示为空(初学者提问). 这个问题很菜,实在是找不到办法. 为什么往数据库中插入数据显示成功,但是数据库中显示是空. +------+------+ |   name   | ...

  5. mysql数据库插入数据为空_用java向mysql数据库中插入数据为空

    利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util ...

  6. datetime插入数据_量化学习:聚宽jqdatasdk对接vnpy的数据服务

    -- 本篇文章 by 丁智 数据服务:使用聚宽jqdatasdk获取分钟数据按vnpy的Bar格式导入至mongodb中 提供downloadAllMinuteBar(),可以通过定时任务的形式,按v ...

  7. oracle和mysql数据实时同步_异构数据源的CDC实时同步系统——最终选型实战

    引言: <异构数据源的CDC实时同步系统> 系列第一篇 (已完成) <零编码打造异构数据实时同步系统--异构数据源CDC之2> 系列第二篇(已完成) <零编码打造异构数据 ...

  8. 为什么用jdbc插入数据为空_为什么气象数据推荐用 ModelWhale 处理

    hi,大家好,我是 ModelWhale 产品经理,我们的产品,简而言之,就是一个用来写python代码的软件.你可能没有听说过我们,但你一定每天都会看天气预报. 今天想和你说的,就是一群气象人和我们 ...

  9. python分析股票数据的项目_用Python分析股市指数

    專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析.Python.机器学习.Kaggle.17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目管理:PMO,变革,生产转移,清算和资产处 ...

最新文章

  1. JSP自定义标签之简单标签入门
  2. ORACLE 创建作业JOB例子
  3. c++中的引用和指针
  4. Ciel and Robot CodeForces - 322C
  5. 雷人!09年0分最具文采的高考作文
  6. “华尔街之狼”:预计BTC价格将反弹至10万美元
  7. 思科模拟器叫什么_宇宙无敌上帝视角无所不能之星球生成模拟器。
  8. mfc 通过按钮发弹幕_BiliBiliChat
  9. TiledMap快捷键
  10. 数学建模评价类模型——模糊综合评价
  11. 如何设置EditPlus的默认编码utf-8方式
  12. video.h5.player.js视频播放器
  13. MySQL数据库索引查询
  14. c语言智能小车项目的感想,智能小车实训报告
  15. php tracert,详解路由跟踪命令(tracert)
  16. sheet中没有getcolumns()方法吗_痘痘能去除吗?有没有效果比较好的祛痘方法
  17. 基于STM32的物联网下智能化养鱼鱼缸控制控制系统
  18. python 爬虫小案例 8684网站爬取北京公交路线站点信息。
  19. 加速度随机游走_怎么才能形象的说明IMU的bias随机游走?
  20. 显示器购买攻略【小白必看】

热门文章

  1. 读《我是一只IT小小鸟》笔记
  2. XTU -1231 人生成就 (dp + 记录最优解的个数)
  3. 下坠的小鸟(flappy bird)速算版
  4. Ant学习总结5(配合Ant视频8,9)
  5. JDK1.7配置及测试
  6. monotouch Single View Application
  7. java内部类写法_Java学习-内部类
  8. mysql日期序列填充_MySQL如何在范围内填充缺失的日期?
  9. java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法
  10. php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...