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

相关推荐
数据知道14 分钟前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据1 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务1 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Libraeking2 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位2 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
Goat恶霸詹姆斯3 小时前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七3 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草3 小时前
redis-9-哨兵
数据库·redis·bootstrap
明哥说编程3 小时前
Dataverse自定义表查询优化:D365集成大数据量提速实战【索引配置】
数据库·查询优化·dataverse·dataverse自定义表·索引配置·d365集成·大数据量提速
xiaowu0804 小时前
C# 拆解 “显式接口实现 + 子类强类型扩展” 的设计思想
数据库·oracle