当前位置: 首页 > news >正文

php在动态网站开发/新浪体育nba

php在动态网站开发,新浪体育nba,网站增加外链的方法有哪些,六安 网站建设2.3 数据导入如果我们在一家公司做数据分析,那么我们可以容易访问公司数据库中已有的数据。但是对于一个刚学习SQL的新手来说,并没有现成的数据库供你学习,“巧妇难为无米之炊”,因此我们学习时的第一步就是学会数据导入。在工作中…

2.3 数据导入

如果我们在一家公司做数据分析,那么我们可以容易访问公司数据库中已有的数据。但是对于一个刚学习SQL的新手来说,并没有现成的数据库供你学习,“巧妇难为无米之炊”,因此我们学习时的第一步就是学会数据导入。

在工作中我们经常接触到的数据格式有以下三种:

文件格式行数限制易处理性
xlsx/xls有限制难处理
CSV无限制容易处理
TXT无限制容易处理

在平时办公中,我们接触最多的就是xlsx或者xls格式的工作簿,但是一张工作表存储的数据最多也只有100多万行,同时将Excel工作表导入到数据库中相对来说难处理一点。而CSV和TXT两种文本格式数据没有行数限制,同时导入到数据库中也比较方便,因此我们尽量获取CSV、TXT两种格式的文本来进行数据分析。

我们要想将文件中的数据导入数据库一般可以用Navicat的导入向导或者语句导入。使用导入向导的优点是简单直观,缺点是速度慢。使用语句导入优点是速度快,尤其是导入几个G数据的时候,两者差距非常明显,当然缺点就是需要写语句。下面我们针对这两种方式分别进行演练。

2.3.1 导入向导

我们以Kaggle网站上下载的公开电商零售数据为例,利用Navicat的导入向导将CSV文件中的数据导入数据库。

68eff844a4cc275bbe7fcc2209726f56.png
图2.3.1-1

如图2.3.1-1所示,在“表”图标上右键后点击“导入向导”。

19f2dcbb29d858c1f1c4e351db4d809d.png
图2.3.1-2

如图2.3.1-2所示,选择导入的文件数据格式。

7bdcbd02b80e32620e6c96f6fe81bc15.png
图2.3.1-3

如图2.3.1-3所示,选择导入的文件路径。

9ea94080b52b5e31ed71c369f460ecdf.png
图2.3.1-4

如图2.3.1-4所示,设置字段之间的分隔符,一般保持默认就可以。

ece0749eb33868ee135c37915900461e.png
图2.3.1-5

如图2.3.1-5所示, 一般文件数据的第一行是字段名称,数据从第二行开始,一般保持默认设置就可以。

90961b0b677dd872d70898765198b777.png
图2.3.1-6

如图2.3.1-6所示,设置导入后目标表的名称,默认是导入文件名称,可能自定义修改。

fe519d0f8137ad3c880b0130905c3697.png
图2.3.1-7

如图2.3.1-7所示,设置导入后的字段名称,数据类型。默认是原表数据名称,数据类型是varchar文本类型,最大长度为255字符。

/home/nigo/IT-Audit/pictures/2.3.1-8.pngef432676f78b4d6f8567188e9f2f3e4b.png

如图2.3.1-8所示,保持默认设置。

5c2a28d2da54cedddf17df06e4a820f4.png
图2.3.1-9

如图2.3.1-9所示,点击“开始”进行数据导入。

98188698bc0329c3466941f718ce5256.png
图2.1.3-10

数据导入完成后,如图2.3.1-10所示,双击导入的“ecommerce”表,可以查看表中的字段和数据。

除了CSV外,我们常用的Excel,TXT格式的文件同样方法可以使用导入向导十分方便的导入,这里就不再赘述。需要注意的是如果Excel有时不能导入,可以先将其另存为CSV格式。如果文件中的数据包含有中文的时候,直接导入出现中文乱码,需要先将文件另存为utf-8编码格式。

2.3.2 语句导入

虽然导入向导非常简单,容易上手,但是有两种情况下,我们需要使用写SQL语句来导入数据:

  1. 导入向导导入失败。
  2. 导入数据很大,导入向导速度很慢。

采用语句导入的时候,我们需要分两步,首先创建一张空表,再将数据导入创建的空表。

首先在前言提到的GitHub或码云中链接的网盘下载示例数据“data.csv"。然后在Navicat中点击“新建查询”,如图2.3.2-1所示,在新建的查询界面,我们可以写第一条SQL语句了。

bc72441c20d309254bce7cd0db3bfb99.png
图2.3.2-1

SQL语句是大小写不敏感的,也就是说你写“CREATE”和“create”都是相同的,而其他很多语言大写和小写是不同的。同时Navicat在你输入的时候会自动语句提示,比如当你输入“cr"的时候,系统就弹出了“CREATE”的提示,这个时候你不用输入完整的单词,只需要按一下“Tab”键,就可以将单词补全。这是对于新手十分友好的。

打开下载好的“data.csv"文件,我们可以看到表头的字段为”InvoiceNo,StockCode,Description,Quantity,InvoiceDate,UnitPrice,CustomerID,Country“

接下来我们就用“create table"语句创建一个名字为“ecommerce”的表并且包含上面的八个字段:

「CREATE TABLE 语法」

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

我们按照语法填写好每个字段以及其数据类型:

create table ecommerce(
InvoiceNo varchar(255),
StockCode varchar(255),
Description varchar(255),
Quantity varchar(255),
InvoiceDate varchar(255),
UnitPrice varchar(255),
CustomerID varchar(255),
Country varchar(255)
);

这里的varchar(255)就表示数据类型为文本,且最大容纳位数为255。在MySQL中,有三种主要的数据类型:文本、数字和日期/时间类型。

「文本类型」

数据类型描述
CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size)保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。
TINYTEXT存放最大长度为 255 个字符的字符串。
TEXT存放最大长度为 65,535 个字符的字符串。
BLOB用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。
MEDIUMTEXT存放最大长度为 16,777,215 个字符的字符串。
MEDIUMBLOB用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
LONGTEXT存放最大长度为 4,294,967,295 个字符的字符串。
LONGBLOB用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
ENUM(x,y,z,etc.)允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z')
SET与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

「数字类型」

数据类型描述
TINYINT(size)-128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
SMALLINT(size)-32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。
MEDIUMINT(size)-8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
INT(size)-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
BIGINT(size)-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
FLOAT(size,d)带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d)带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d)作为字符串存储的 DOUBLE 类型,允许固定的小数点。

「日期/时间类型」

DATE()日期。格式:YYYY-MM-DD注释:支持的范围是从 '1000-01-01' 到 '9999-12-31'
DATETIME()*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
TIMESTAMP()*时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
TIME()时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59'
YEAR()2 位或 4 位格式的年。注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

上面的数据类型不用刻意去记忆,在具体使用的过程中可以查阅。其中文本类型常用的有varchar、longtext,数字类型常用的有int、decimal,日期/时间格式都常用。这里我们导入先不考虑数据类型,把所有数据认为是文本类型,设置成varchar(255)。完成建表后,就用语句将数据导入。

load data infile '../Uploads/data.csv'
into table ecommerce
fields terminated by ',' enclosed by '"'
lines terminated by '\n' ignore 1 lines;

load data infile '../Uploads/data.csv' into table ecommerce:将data.csv文件中的数据导入到ecommerce表中。这里的路径如果你填写本地的路径,可能会报错,告诉你没有处理权限。因此不简便起见,我们是把文件拷贝到具有MySQL处理权限的路径C:\ProgramData\MySQL\MySQL Server 8.0\Uploads中。

fields terminated by ',':字段间的分割符号,通常有逗号、制表符,制表符我们用'\t'来表示。

enclosed by '"':字段的包裹符号(可选)。如果我们每个字段是有符号包裹,而这个符号并不是我们需要的信息,那么就需要写这段语句。例如示例数据中不加这段语句时运行,会报错如下:

1262 - Row 110 was truncated; it contained more data than there were input columns

意思是第110行被截断,原因是文件中数据列数超过表ecommerce的列数。我们打开文件查看第110行(排除表头)的第三列数据为:"AIRLINE LOUNGE,METAL SIGN",这个数据是由双引号包裹的,并且中间包含有字段的分割符:逗号。那么当我们不告诉系统enclosed by '"'时,系统会将这个字段以逗号分割,当成两个字段,导致报错。

lines terminated by '\n':行分割号,也相当于换行符。Windows系统中文件换行符为\n,Linux系统中文件换行符为\r\n。这里我们文件是Linux系统产生的,总之换行符可以两个都尝试下,能够找到正确的。

ignore 1 lines:忽略前几行(可选)。由于文件中第一行为表头,并不是我们需要的数据,因此需要忽略第一行。

导入语句从字面上很好理解,读者可以用示例数据尝试导入一次,就能够掌握。在SQL语句中分号代表一条语句的结束,前面语句虽然写成了4行,但只有最后结尾有一个分号,说明他还是一条语句。如果不用换行,将其写在一行,也是同样可以运行,因为SQL只识别分号作为结束,换行仅仅起到方便阅读的作用。

「LOAD DATA 语法」

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}] ...]

这是load data完整语法,中括号的语句为可选项,前面示例已详细讲解,这里不再赘述。


示例数据下载:

链接: https://pan.baidu.com/s/1do1O36sMD66k_yAgtvfMBQ 提取码: qjxt

http://www.lbrq.cn/news/1622125.html

相关文章:

  • 网站建设佰首选金手指二六/苏州seo优化公司
  • 怎么用自己的网站做链轮/爱站网长尾关键词
  • 做网站小程序在哪点拉客户/如何制定会员营销方案
  • 企业网站建设的文献/九幺seo工具
  • 企业网站制作 徐州/重庆网站建设
  • 可以做lebenslauf的网站/手机百度seo怎么优化
  • wordpress数据库密码/seo优化排名
  • 做竹鼠网站/百度优化怎么做
  • 做网站赚钱容易吗/博客推广的方法与技巧
  • 企业网站建设排名推荐/中国十大广告公司排行榜
  • 国外网站 国内做镜像/长沙网站se0推广优化公司
  • 农家乐网站建设方案/广州全网推广
  • 建盏供应商排行榜/上海seo优化公司 kinglink
  • 成都响应网站建设/指数分布的分布函数
  • 求网站建设方法/免费ip地址网站
  • 培训网站建设方案模板下载/seo排名优化北京
  • 网站后台维护怎么做/百度网络营销app
  • 网站建设的目的及目标/上海网站排名优化怎么做
  • 网站栏目做跳转/莱芜seo
  • 湛江网站建设方案服务/友链交换网站源码
  • 上海市工程信息网站/百度高级搜索首页
  • 中国建设规划采购网站/关键词全网搜索指数
  • 监控摄像头做斗鱼直播网站/企业文化案例
  • 个人网站开发技术要求/推广普通话演讲稿
  • 美女做暖暖免费网站/今日冯站长之家
  • 重庆商城网站建设公司/广告网站推荐
  • 西安网址开发 网站制作/百度合伙人答题兼职赚钱
  • flash动画制作网页/快速将网站seo
  • 优秀企业网站建设价格/代发广告平台
  • 外贸网站建设和优化/网站seo服务公司
  • EnergyMath芯详科技 EMS4100/MES4000/MES3900
  • 重塑浏览器!微软在Edge加入AI Agent,自动化搜索、预测、整合
  • 7月29日星期二今日早报简报微语报早读
  • 图像轮廓与凸包
  • 对于ui=f(state)的理解(react)
  • Vue 四个map的使用方法