mysql的数据类型和约束

一、数据类型

1、数值型

类型名称说明存储需求
TINYINT很小的整数1个字节
SMALLINT小的整数2个宇节
MEDIUMINT中等大小的整数3个字节
INT (INTEGHR)普通大小的整数4个字节
BIGINT大整数8个字节
类型名称说明存储需求
FLOAT单精度浮点数4 个字节
DOUBLE双精度浮点数8 个字节
DECIMAL (M, D),DEC压缩的“严格”定点数M+2 个字节

2、日期类型

类型名称日期格式日期范围存储需 求
YEARYYYY1901 ~ 21551 个字 节
TIMEHH:MM:SS-838:59:59 ~ 838:59:593 个字 节
DATEYYYY-MM-DD1000-01-01 ~ 9999-12-33 个字 节
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:598 个字 节
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC4 个字 节

3、字符串类型

类型名称说明存储需求
CHAR(M)固定长度非二进制字符串M 字节,1<=M<=255
VARCHAR(M)变长非二进制字符串L+1字节,在此,L< = M和 1<=M<=255
TINYTEXT非常小的非二进制字符串L+1字节,在此,L<2^8
TEXT小的非二进制字符串L+2字节,在此,L<2^16
MEDIUMTEXT中等大小的非二进制字符串L+3字节,在此,L<2^24
LONGTEXT大的非二进制字符串L+4字节,在此,L<2^32
ENUM枚举类型,只能有一个枚举字 符串值1或2个字节,取决于枚举值的数目 (最大值 为65535)
SET一个设置,字符串对象可以有 零个或 多个SET成员1、2、3、4或8个字节,取决于集合 成员 的数量(最多64个成员)

常用的是三个:

(1)char 长度是固定的字符串 name => char(10) => 如果我存放的字符是: jack => 这个时候会占用10个字节

(2)varchar 长度动态(可变长度)的字符串 name => varchar(10) => 如果存放的字符是: rose => 这个时候占用4个字节

(3)text 长度是动态(可变长度)的字符串 text存放的内容远超varchar(比如存放小说)

char 和 varchar 谁的效率高? char 的效率高 在真实情况下,到底用哪个数据类型?

真实情况: 要对数据进行分析,根据实际情况来确定,varchar肯定是用的最多的。

在程序里面有一个模式: 用时间换空间: varchar 用空间换时间:char

二、约束

1、主键约束

# 类似身份证 =》 唯一的标识 =》 能够代表这个人
primary key

2、唯一约束

# 手机号,QQ号 这些应该对于数据来说都是唯一的
unique

3、非空约束

# 意思是这个数据不能为null, 比如用户名 userName not null
not null

4、默认

# 相当于给一个默认值 比如 性别 默认 男
default 男

5、外键约束

# 这是关系型数据库为了维护数据完整性比较重要的一个体现
foreign key

6、检查约束

# 年龄 必须是 12~20
# MySQL中有check约束 但是不起作用
check

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值