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

相关推荐
ii_best几秒前
按键精灵支持安卓14、15系统,兼容64位环境开发辅助工具
android
美狐美颜sdk8 分钟前
跨平台直播美颜SDK集成实录:Android/iOS如何适配贴纸功能
android·人工智能·ios·架构·音视频·美颜sdk·第三方美颜sdk
晋阳十二夜36 分钟前
【压力测试之_Jmeter链接Oracle数据库链接】
数据库·oracle·压力测试
GDAL2 小时前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
数据库·sqlite·node.js
DCTANT3 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
程序员岳焱4 小时前
Java 与 MySQL 性能优化:MySQL全文检索查询优化实践
后端·mysql·性能优化
恋猫de小郭5 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
喜欢敲代码的程序员5 小时前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
AI、少年郎5 小时前
Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)
数据库·oracle
赤橙红的黄5 小时前
自定义线程池-实现任务0丢失的处理策略
数据库·spring