MySQL-4.数据类型

数据库与编程不太一样,它会更加的珍惜字节空间,需考虑所定义字段的大小和所定义字段的实际使用(有无符号)。

4.1 数值类型

4.1.1 整型

数据类型 字节数 无符号数的取值范围 有符号数的取值范围
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
sql 复制代码
mysql> create table emp(
    -> id smallint unsigned auto_increment primary key comment'id',
    -> age tinyint unsigned ,
    -> kkk int(6)  // 宽度限制可以超过,但不能超过所定义数据类型值的范围
    -> );

4.1.2 浮点型

浮点型容易丢失精度------>decimal定点数类型不会丢失精度,因为整数和小数分开存储管理。

sql 复制代码
create 表名  字段名 浮点类型(最大长度位m,小数位d);

mysql> create table t_1(
    -> number_1 float(3,1),
    -> number_2 decimal(20,19)
    -> );
数据类型 字节数 有符号的取值范围 无符号的取值范围
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
DECIMAL(M,D) M+2 -1.7976931348623157E+308~2.2250738585072014E-308 0和2.2250738585072014E-308~1.7976931348623157E+308

最大长度位要大于小数位,超过的小数位会四舍五入。

4.2 字符类型

char(定长)类型,常用的是varchar(变长)类型, 它会自动回收多余的字符空间,但是它相对于char的效率也会更低。

4.3 枚举类型

枚举类型选项的存储非常节省空间,它对选项的的管理使用整数。

4.4 日期与时间类型

数据类型 字节数 取值范围 日期格式 零值
YEAR 1 1901~2155 YYYY 0000
DATE 4 1000-01-01~9999-12-31 YYYY-MM-DD 0000-00-00
TIME 3 -838:59:59~ 838:59:59 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
sql 复制代码
mysql> create table t_7(
    -> createdTime datetime
    -> );

日期时间函数:

sql 复制代码
mysql-> select now();
sql 复制代码
SELECT * FROM t2 WHERE shijian > (now() - INTERVAL 1 day);

SELECT * FROM t2 WHERE shijian < (now() - INTERVAL 1 year);

4.5 文本类型

文本类型用于表示大文本数据,例如,文章内容、评论、详情等。

数据类型 储存范围
TINYTEXT 0~255字节
TEXT 0~65535字节
MEDIUMTEXT 0~16777215字节
LONGTEXT 0~4294967295字节

4.6 二进制类型

binary长度固定,即每条数据占用等长字节空间,保存长度不超过255字节的二进制数据。

varbinary可变长度,可以设置最大长度,最大长度65535,适合用在长度可变的二进制数据。

blob不设置长度,当不知道属性的最大长度时,适合用blob,能用varbinary的地方不用blob。

如果都可以选择,按照查询速度:binary最快,varbinary次之,blob最慢。

参考:http://t.csdnimg.cn/MUsXP

http://t.csdnimg.cn/uE4ZZ

http://t.csdnimg.cn/8Zpm0

相关推荐
正在走向自律4 小时前
金仓数据库KingbaseES中级语法详解与实践指南
数据库·oracle·kingbasees·金仓数据库·信创改造
Gofarlic_oms14 小时前
Windchill用户登录与模块访问失败问题排查与许可证诊断
大数据·运维·网络·数据库·人工智能
我是小疯子664 小时前
Python变量赋值陷阱:浅拷贝VS深拷贝
java·服务器·数据库
Zoey的笔记本5 小时前
2026告别僵化工作流:支持自定义字段的看板工具选型与部署指南
大数据·前端·数据库
静听山水5 小时前
docker安装starrocks
数据库
SHEN_ZIYUAN5 小时前
深度解析:从 AnimationHandler 原理看 Android 动画内存泄漏
android
冬奇Lab5 小时前
稳定性性能系列之十六——车机特定场景:黑卡死问题分析与排查实战
android·性能优化
学编程的小程6 小时前
从“兼容”到“超越”:金仓KESBSON引擎如何借多模融合改写文档数据库规则
数据库
千层冷面6 小时前
数据库分库分表
java·数据库·mysql·oracle
座山雕~6 小时前
Springboot
android·spring boot·后端