利用MySQL玩转数据分析之基础篇-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

知识无底学海无涯到今天进入MySQL的学习4天了知识点虽然简单但是比较多所以写一篇博客将MySQL的基础写出来方便自己以后查找还有就是分享给大家。

1、SQL简述
1SQL的概述
Structure Query Language(结构化查询语言)简称SQL它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库定义和操作数据维护数据的完整性和安全性。

2SQL的优点
简单易学具有很强的操作性
绝大多数重要的数据库管理系统均支持SQL
高度非过程化用SQL操作数据库时大部分的工作由DBMS自动完成

3SQL的分类
DDL(Data Definition Language) 数据定义语言用来操作数据库、表、列等常用语句CREATE、 ALTER、DROP
DML(Data Manipulation Language) 数据操作语言用来操作数据库中表里的数据常用语句INSERT、 UPDATE、 DELETE
DCL(Data Control Language) 数据控制语言用来操作访问权限和安全级别常用语句GRANT、DENY
DQL(Data Query Language) 数据查询语言用来查询数据 常用语句SELECT

2、数据库的三大范式
第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据线也就是说每列的值具有原子性不可再分割。
第二范式(2NF)是在第一范式(1NF)的基础上建立起来得满足第二范式(2NF)必须先满足第一范式(1NF)。如果表是单主键那么主键以外的列必须完全依赖于主键如果表是复合主键那么主键以外的列必须完全依赖于主键不能仅依赖主键的一部分。
第三范式(3NF)是在第二范式的基础上建立起来的即满足第三范式必须要先满足第二范式。第三范式(3NF)要求表中的非主键列必须和主键直接相关而不能间接相关也就是说非主键列之间不能相关依赖。

3、数据库的数据类型
使用MySQL数据库存储数据时不同的数据类型决定了 MySQL存储数据方式的不同。为此MySQL数据库提供了多种数据类型其中包括整数类型、浮点数类型、定点 数类型、日期和时间类型、字符串类型、二进制…等等数据类型。

1整数类型
根据数值取值范围的不同MySQL 中的整数类型可分为5种分别是TINYINT、SMALUNT、MEDIUMINT、INT和 BIGINT。下图列举了 MySQL不同整数类型所对应的字节大小和取值范围而最常用的为INT类型的
数据类型 字节数 无符号数的取值范围 有符号数的取值范围
TINYINT 1 0~255 -128~127
SMALLINT 2 0~65535 -32768~32768
MEDIUMINT 3 0~16777215 -8388608~8388608
INT 4 0~4294967295 -2147483648~ 2147483648
BIGINT 8 0~18446744073709551615 -9223372036854775808~9223372036854775808

2浮点数类型和定点数类型
在MySQL数据库中使用浮点数和定点数来存储小数。浮点数的类型有两种单精度浮点数类型FLOAT)和双精度浮点数类型DOUBLE)。而定点数类型只有一种即DECIMAL类型。下图列举了 MySQL中浮点数和定点数类型所对应的字节大小及其取值范围
数据类型 字节数 有符号的取值范围 无符号的取值范围
FLOAT 4 -3.402823466E+38~-1.175494351E-38 0
和1.175494351E-38~3.402823466E+38
DOUBLE 8 -1.7976931348623157E+308~2.2250738585072014E-308 0和2.2250738585072014E-308~1.7976931348623157E+308
DECIMALM,D M+2 -1.7976931348623157E+308~2.2250738585072014E-308 0
和2.2250738585072014E-308~1.7976931348623157E+308
从上图中可以看出DECIMAL类型的取值范围与DOUBLE类型相同。但是请注意DECIMAL类型的有效取值范围是由M和D决定的。其中M表示的是数据的长 度D表示的是小数点后的长度。比如将数据类型为DECIMAL(6,2)的数据6.5243 插人数据库后显示的结果为6.52

3字符串类型
在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是VARCHAR存储可变长度的字符串。
当数据为CHAR(M)类型时不管插入值的长度是实际是多少它所占用的存储空间都是M个字节而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1。
插入值 CHAR(3) 存储需求 VARCHAR(3) 存储需求
‘’ ‘’ 3个字节 ‘’ 1个字节
‘a’ ‘a’ 3个字节 ‘a’ 2个字节
‘ab’ ‘ab’ 3个字节 ‘ab’ 3个字节
‘abc’ ‘ab’ 3个字节 ‘abc’ 4个字节
‘abcd’ ‘ab’ 3个字节 ‘abc’ 4字节

4字符串类型
文本类型用于表示大文本数据例如文章内容、评论、详情等它的类型分为如下4种
数据类型 储存范围
TINYTEXT 0~255字节
TEXT 0~65535字节
MEDIUMTEXT 0~16777215字节
LONGTEXT 0~4294967295字节

5日期与时间类型
MySQL提供的表示日期和时间的数据类型分别是 YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。下图列举了日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值
数据类型 字节数 取值范围 日期格式 零值
YEAR 1 1901~2155 YYYY 0000
DATE 4 1000-01-01~9999-12-31 YYYY-MM-DD 0000-00-00
TIME 3 -8385959~ 8385959 HH:MM:SS 00:00:00
DATETIME 8 1000-01-01 00:00:00~9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00
TIMESTAMP 4 1970-01-01 00:00:01~2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00

①YEAR类型
YEAR类型用于表示年份在MySQL中可以使用以下三种格式指定YEAR类型 的值。
使用4位字符串或数字表示范围为’1901’—'2155’或1901—2155。例如输人 ‘2019’或2019插人到数据库中的值均为2019。
使用两位字符串表示范围为’00’—‘99’。其中‘00’—'69’范围的值会被转换为 2000—2069范围的YEAR值‘70’—'99’范围的值会被转换为1970—1999范围的YEAR 值。例如输人’19’插人到数据库中的值为2019。
使用两位数字表示范围为1—99。其中1—69范围的值会被转换为2001— 2069范围的YEAR值70—99范围的值会被转换为1970—1999范围的YEAR值。例 如输人19插入到数据库中的值为2019。
请注意当使用YEAR类型时一定要区分’0’和0。因为字符串格式的’0’表示的YEAR值是2000而数字格式的0表示的YEAR值是0000。

②TIME类型
TIME类型用于表示时间值它的显示形式一般为HH:MM:SS其中HH表示小时 MM表示分,SS表示秒。在MySQL中可以使用以下3种格式指定TIME类型的值。
以’D HH:MM:SS’字符串格式表示。其中D表示日可取0—34之间的值, 插人数据时小时的值等于(DX24+HH)。例如输入’2 11:30:50’插人数据库中的日期为59:30:50。
以’HHMMSS’字符串格式或者HHMMSS数字格式表示。 例如输人’115454’或115454,插入数据库中的日期为11:54:54
使用CURRENT_TIME或NOW()输人当前系统时间。

③DATETIME类型
DATETIME类型用于表示日期和时间它的显示形式为’YYYY-MM-DD HH: MM:SS’其中YYYY表示年MM表示月DD表示日HH表示小时MM表示分SS 表示秒。在MySQL中可以使用以下4种格式指定DATETIME类型的值。
以’YYYY-MM-DD HH:MM:SS’或者’YYYYMMDDHHMMSS’字符串格式表示的日期和时间取值范围为’1000-01-01 00:00:00’—‘9999-12-3 23:59:59’。例如输人’2019-01-22 09:01:23’或 ‘20140122_0_90123’插人数据库中的 DATETIME 值都为 2019-01-22 09:01:23。
以’YY-MM-DD HH:MM:SS’或者’YYMMDDHHMMSS’字符串格式表示的日期和时间其中YY表示年取值范围为’00’—‘99’。与DATE类型中的YY相同‘00’— '69’范围的值会被转换为2000—2069范围的值‘70’—'99’范围的值会被转换为1970—1999范围的值。
以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期 和时间。例如插入20190122090123或者190122090123,插人数据库中的DATETIME值都 为 2019-01-22 09:01:23。
使用NOW来输人当前系统的日期和时间。

④TIMESTAMP类型
TIMESTAMP类型用于表示日期和时间它的显示形式与DATETIME相同但取值范围比DATETIME小。在此介绍几种TIMESTAMP类型与DATATIME类型不同的形式
使用CURRENT_TIMESTAMP输人系统当前日期和时间。
输人NULL时系统会输人系统当前日期和时间。
无任何输人时系统会输入系统当前日期和时间。

6二进制类型
在MySQL中常用BLOB存储二进制类型的数据例如图片、PDF文档等。BLOB类型分为如下四种
数据类型 储存范围
TINYBLOB 0~255字节
BLOB 0~65535字节
MEDIUMBLOB 0~16777215字节
LONGBLOB 0~4294967295字节

文章来源网络 版权归原作者所有
上文内容不用于商业目的如涉及知识产权问题请权利人联系小编我们将立即处理

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql