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

相关推荐
时雨h2 小时前
30天面试打卡计划 2024-12-25 26 27 面试题
java·开发语言·数据库
TDengine (老段)4 小时前
TDengine 新功能 VARBINARY 数据类型
大数据·c语言·数据库·时序数据库·tdengine·涛思数据
山山而川粤5 小时前
母婴用品系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
yuenblue6 小时前
什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例
数据库·sqlite
howard_shooter6 小时前
Oracle Managed Files(OMF)
数据库·oracle
yangfeipancc6 小时前
数据库-用户管理
android·数据库
字节流动7 小时前
Android Java 版本的 MSAA OpenGL ES 多重采样
android·java·opengles
xuanfengwuxiang7 小时前
安卓帧率获取
android·python·测试工具·adb·性能优化·pycharm
fen_fen8 小时前
mysql,mariadb,postgresql创建用户和授权的命令
mysql·postgresql·mariadb
两点王爷8 小时前
Java读取csv文件内容,保存到sqlite数据库中
java·数据库·sqlite·csv