MySQL操作之数据类型
序号 | 类型 | 地址 |
---|---|---|
1 | MySQL | MySQL操作之概念、SQL约束(一) |
2 | MySQL | MySQL操作之数据定义语言(DDL)(二) |
3 | MySQL | MySQL操作之数据操作语言(DML)(三) |
4 | MySQL | MySQL操作之数据查询语言:(DQL)(四-1)(单表操作) |
5 | MySQL | MySQL操作之数据查询语言:(DQL)(四-2)(多表查询) |
6 | MySQL | MySQL操作之数据控制语言:(DC)(五) |
7 | MySQL | MySQL操作之数据库函数 |
8 | MySQL | MySQL管理之数据类型 |
9 | MySQL | MySQL管理之索引 |
10 | MySQL | MySQL管理之事务管理 |
11 | MySQL | MySQL管理之存储过程 |
12 | MySQL | MySQL管理之视图 |
13 | MySQL | MySQL管理之数据备份与还原 |
14 | MySQL | Linux(centos 7.5)服务器安装MySQL |
15 | MyBatis | MyBatis从入门到多表关联 |
16 | MyBatis | MyBatis常用方法 |
17 | MyBatis | Mybatis逆向工程的使用(附文件地址) |
18 | MyBatis | spring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle) |
19 | MyBatis-Plus | Mybatis-Plus使用案例(包括初始化以及常用插件) |
20 | MyBatis-Plus | mybatis-plus代码生成器 |
21 | MyBatis-Plus | 自定义SQL |
22 | MyBatis-Plus | Mybatis-Plus(连接Hive) |
23 | MyBatis-Plus | MyBatis-plus配置自定义SQL(执行用户传入SQL) |
24 | MyBatis-Plus | Mybatis-Plus(Service CRUD 接口) |
MySQL提供了5种数据类型:整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。
1、整数类型(INT)
有5种数据类型:tinyINT、samllINT、mediumINT、INT、bigINT。
特点:
- 占用字节数最小的:TINYINT。
- 占用字节数最小的:BIGINT。
2、浮点数类型和定点数类型(Float/Double)
存储小数都是使用浮点数和定点数来表示的
浮点数类型:单精度浮点数(Float)和双精度浮点数(Double)。
定点数类型:decimal
浮点数:
定点数:
Decimal类型的取值范围与Double类型相同。有效取值范围由M和D的值决定。使用(M, D)来表示。其中M代表精度(数据长度),即总位数,默认值为10;D代表标度,即小数的位数,默认值为0。
- DECIMAL(6,2):数据3.1415插入数据后为3.14。
3、日期与时间类型(DATE)
方便在数据库中存日期和时间。提供了表示时间和日期的数据类型。
包括:Year、Date、Time、DateTime、和Timestamp。
3.1、Year类型
用于表示年份。
- 使用4位字符串或数字表示。例如:输入’2014’或2014,结果为2014。
- 使用2位字符串表示。例如:输入’14’,结果为2014。
- 使用2位数字表示。例如:输入’14’,结果为2014。
3.2、Date类型(YYYY-MM-DD)
用于表示日期值,不包含时间部分。
- 以
YYYY-MM-DD
或YYYYMMDD
字符串格式表示。例如:输入’2014-01-21’或2014-01-21,结果为2014-01-21。 - 以
YY-MM-DD
或YYMMDD
字符串格式表示。例如:输入’14-01-21’或14-01-21,结果为2014-01-21。 - 以
YY-MM-DD
或YYMMDD
数字格式表示。例如:输入14-01-21或14-01-21,结果为2014-01-21。 - 使用CURRENT_DATE或者NOW( )表示当前系统时间。
3.3、Time类型(HH-MM-SS)
用户表示时间值。
- 以
D HH:MM:SS
字符串格式表示,启动D表示日,可以取0~34之间的值。插入数据时,小时的值等于(Dx24+HH)。例如:输入2 11:30:50
,结果为59:30:50
。 - 以
HHMMSS
字符串格式或HHMMSS数字格式来表示。例如:输入’345454’或345454,结果为345454。 - 使用CURRENT_DATE或者NOW( )表示当前系统时间。
3.4、DateTime类型(HH-MM-SS)
用户表示日期和时间,显示形式为YYYY-MM-DD HH:MM:SS
。
- 以
YYYY-MM-DD HH:MM:SS
或者YYYYMMDDHHMMSS
字符串形式表示日期和时间。例如:输入’2013-01-23 09:12:21’或20130123091221,结果为2013-01-23 09:12:21。 - 以
YY-MM-DD HH:MM:SS
或者YYMMDDHHMMSS
字符串形式表示日期和时间。例如:输入’13-01-23 09:12:21’或130123091221,结果为2013-01-23 09:12:21。 - 以YYMMDDHHMMSS或YYYYMMDDHHMMSS数字形式表示日期和时间。例如:输入20130123091221或130123091221,结果为2013-01-23 09:12:21。
- 使用NOW( )表示当前系统时间。
3.5、TimeStamp类型
显示形式与DateTime相同,但取值范围比DateTime小。
- 使用CURRENT_TimeStamp来输入系统当前时间和日期。
- 输入NULL时,系统会输入系统当前日期和时间。
- 无任何输入时,系统会输入系统当前日期和时间。
4、字符串和二进制类型(CHAR)
4.1、Char和Varchar
Char和Varchar类型都是用来表示字符串数据,不同的是Varchar可以存储可变长度的字符串。
定义方式:
CHAR(M)
VARCHAR(M)
其中M表示字符串的最大长度。
从图中可以看出:
- CAHR(4)类型:无论插入值长度是多少,所占用的存储空间都是4个字节。
- VARCHAR(4)类型:所对应的数据所占用的字节数为实际长度+1.
4.2、Binary和VarBinary类型
Binary和VarBinary类型类似于Char和Varchar,不同的是,它们所表示的是二进制。
定义方式:
BINARY(M)
VARBINARY(M)
其中:M表示二进制数据的最大字节长度。
- Binary类型的长度是固定的,长度不满足最大长度时,将在后面以
\0
补齐,最终达到指定长度。
4.3、Text类型
Text类型表示大文本数据。类型分为4类
数据类型 | 存储范围 |
---|---|
TinyText | 0~255字节 |
Text | 0~65 535字节 |
MediumText | 0~16 777 215字节 |
LongText | 0~4294 967 295字节 |
4.4、Blob类型
Blob是一种特殊的二级制类型,用于表示数据量很大的二级制数据。分4中类型。
数据类型 | 存储范围 |
---|---|
TinyBlob | 0~255字节 |
Blob | 0~65 535字节 |
MediumBlob | 0~16 777 215字节 |
LongBlob | 0~4294 967 295字节 |
Blob类型和Text类型很相似。但是Blob是根据二级制编码进行比较和排序的。Text类型是根据文本模式进行比较和排序的。
4.5、Enum类型
Enum枚举类型。定义格式:
ENUM('值1','值2','值3'...)
('值1','值2','值3'...)
称为枚举列表。- Enum类型的数据只能从枚举列表中取,并且只能取一个。
- 枚举列表中每个值都有一个顺序编号,MySQL存入的是顺序编号,而不是列表中的值。
4.6、Set类型
Set类型表示字符串对象,它的值可以有0个或者多个,Set类型数据的定义格式与Enum类似。定义格式:
SET('值1','值2','值3',...)
与Enum类型相同。列表中每个值都有一个顺序编号,MySQL存入的是顺序编号,而不是列表中的值。
4.7、Bit类型
Bit类型用于表示二级制数据。定义:
BIT(M)
- M表示每个值的位数,范围是1~64。
- 数据长度小于M,在数据左边补0。