写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
- 对于文章中出现的任何错误请大家批评指出,一定及时修改。
- 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
- 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
MySQL 5.7 - 常见数据类型
本文关键字:MySQL、数据类型、文本类型、数字类型、日期类型
数据类型是数据库的一个重要组成部分,在MySQL数据库中可将数据类型分为三大类:Text类型(文本类型)、Number类型(数字类型)、Date类型(日期类型)。
一、Text类型
Text类型为本文类型,也就是我们在编程中常说的字符串,同时由于可以进行序列化、反序列化等等的操作,我们甚至于可以直接将文件转换后存入数据库(但通常我们不会这样做)。
1. CHAR
- 最大长度:255
- 内容限制:字母、数字及特殊字母,正确设置编码后可以存入中文等字符
- 特点:长度固定,占用空间较大,效率稍高
2. VARCHAR
- 最大长度:255
- 内容限制:字母、数字及特殊字母,正确设置编码后可以存入中文等字符
- 特点:长度可变,需要同时记录数据本身和占用的空间大小,可适度节省磁盘空间,效率稍低
3. TINYTEXT
- 最大长度:255
- 内容限制:字母、数字及特殊字母,正确设置编码后可以存入中文等字符
- 特点:存储方式上有所不同,不会和行数据存在一起
4. TEXT
- 最大长度:65,535
- 内容限制:字母、数字及特殊字母,正确设置编码后可以存入中文等字符
- 其他相似类型
- MEDIUMTEXT:最大长度为16,777,215
- LONGTEXT:最大长度为4,294,967,295
5. BLOB
- 最多存放:65,535字节
- 内容限制:Binary Large OBjects(二进制长对象)
- 其他相似类型
- MEDIUMBLOB:最多存放16,777,215字节
- LONGBLOB:最多存放4,294,967,295字节
6. ENUM
- 最大个数:65,535
- 内容限制:字符串类型,存储的数据只能是在ENUM中已罗列出的值,或为NULL
7. SET
- 最大个数:64
- 内容限制:字符串类型,存储的数据只能是在SET中已罗列出的值
- 特点:可以存储进多个SET中已声明的元素,但是不会重复存入相同的元素
二、Number类型
Number类型为数字类型,主要用于存储整数和小数,长度部分代表数据的最大位数,而不是最大值。
1. TINYINT
- 数据范围
- 常规:-128~127
- 无符号:0~255
- 内容限制:整数
2. INT
- 数据范围
- 常规:-2,147,483,648~2,147,483,647
- 无符号:0~4,294,967,295
- 内容限制:整数
- 相似类型
- SMALLINT:-32768~32767 (常规),0~65535(无符号)
- MEDIUMINT:-8,388,608~8,388,607(常规),0~16,777,215(无符号)
3. BIGINT
- 数据范围
- 常规:-9,223,372,036,854,775,808~9,223,372,036,854,775,807
- 无符号:0~18,446,744,073,709,551,615
- 内容限制:整数
4. FLOAT
- 数据范围
- 总位数:0~23
- 小数位:0~4
- 内容限制:小数或整数
5. DOUBLE
- 数据范围
- 总位数:0~53
- 小数位:0~8
- 内容限制:小数或整数
6. DECIMAL
- 数据范围
- 总位数:0~65
- 小数位:0~30
- 内容限制:小数或整数
三、Date类型
Date类型为日期类型,用于记录时间格式的数据。通常会以日期格式的字符串、时间戳或部分日期信息的形式来进行记录。
1. DATE
- 显示格式:YYYY-MM-DD
- 起止范围:'1000-01-01' 到 '9999-12-31'
2. DATETIME
- 显示格式:YYYY-MM-DD hh:mm:ss
- 起止范围:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
3. TIMESTAMP
- 显示格式:时间戳(长整形)
- 起止范围:'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC
4. TIME
- 显示格式:hh:mm:ss 或 hhh:mm:ss
- 起止范围:'-838:59:59' 到 '838:59:59'
5. YEAR
- 显示格式:YYYY
- 起止范围:1901 到 2155,或0000
- 备注:一般使用0,00,0000代表2000年,在严格模式下,0000是一个非法的值