Mysql 常用数据类型

Mysql 的列类型-即数值类型

大致分为四类:

  • 数值类型
  • 文本类型
  • 二进制数据类型
  • 日期类型
    在这里插入图片描述

数值类型

使用规范:在能够满足需求的情况下,尽可能选择占用空间小的类型
在这里插入图片描述

  • 类型后加 [UNSIGNED],那么该类型就为无符号数,及非负数
  • decimal 类型中的 M 表示总长度,D 表示小数位的长度(M > D)。如果 D 是 0,则没有小数部分。 M 最大为 65,D 最大为 30。如果省略 M,默认为 10,省略 D,默认为 0。所以decimal 可以存非常大的数

例子:

CREATE TABLE decimal_table(
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL(30, 20)
);

INSERT INTO decimal_table VALUES(88.123456789123456, 88.123456789123456, 88.123456789123456);
SELECT * FROM decimal_table

结果:
在这里插入图片描述

其他类型

在这里插入图片描述

二进制类型

例子:
创建一张表,id 的数组类型为二进制类型

CREATE TABLE bit_table (
	id BIT(8)
	);
INSERT INTO bit_table VALUES(3);
INSERT INTO bit_table VALUES(5);
SELECT * FROM bit_table;

再 SQLyog 中显示为:
在这里插入图片描述
可见,bit 类型是以二进制类型展示的

字符串类型

  • char(size) 表示固定长度为 size 的字符串 (0 ~ 255)
  • varchar(size) 可变长度字符串(0 ~ 65535),最长 65532 字节,因为 utf8 编码需要三个字节记录字段大小
  • size 表示的是字符个数,而不是字节数
  • 如果表的编码是 utf8,那么 varchar 的 size 最大值为 (65535 - 3)/ 3 = 21844。因为 utf8 是三个字节表示一个字符
  • 如果表的编码是 gbk,那么 varchar 的 size 最大值为 (65535 - 3)/ 2 = 32766。因为 gbk 是两个字节表示一个字符
  • char(size) 是固定长度的,不管存的字符串长度多小,都占 size 个字符的字节数
  • varchar(size) 是长度可变的,只占实际用的字符长度对应的字节数 + 1~3 用来记录字段大小的字节,size 是用来限制输入字符的长度
  • 在存放文本时,也可以使用 Text 数据类型,可以将 Text 列视为 varchar 列,但是 Text 不能有默认值。大小为 0 - 216 字节
  • 如果希望存下更多字符,可以选择 MEDIUMTEXT 0 - 224 字节 或者 LONGTEST 0 - 232 字节

日期类型

CREATE TABLE birthday_timestamp (
   birthday DATE,
   detail DATETIME,
   login_time TIMESTAMP 
   	NOT NULL DEFAULT CURRENT_TIMESTAMP 
   	ON UPDATE CURRENT_TIMESTAMP
);
  • 在上述例子中,timestamp 类型的列 login_time 默认值即为创建记录时的系统时间

枚举类型

该类型的值需要从给定的集合中的一个,比如限制性别只能为 男、女

create table person (
	sex enum('男', '女') not null
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三更鬼

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值