数据库建表的一些约束与规则

一、MySQL数据类型选择问题:
1、整形的存储可选类型:
tinyint
smallint
mediumint
int
bigint

int(10)括号中的10是指显示的宽度,而与存储空间无关。实际上这里的n非常鸡肋,几乎没有什么应用场景。这个n无论填什么数班都不影响存储环节,仅影响在检索时的输出格式,而且在非常严格的情况下才会成立。

具体的MySQL于Java的数据类型对应关系:
https://blog.csdn.net/diyu122222/article/details/78951467

二、汉字在数据库存储中占几个字节
汉字占用几个字节主要取决于字符的编码方法:
GBK下一个汉字占两个字节
UTF-8下一个汉字通常占三个字节,有些情况也会占四个字节()

三、字段的非空设置
如果是程序中字段确实需要存在null才设置为null,其他原因下最好设置为not null
非空约束的必要性:
1、开发时如果交给数据库的数据不符合数据库的条件则会报错,为开发时不会忽略非空判断做验证
2、null值不走索引
3、安全,防止sql注入

四、主键类型应该用自增(int)还是uuid(varchar)?

存储所需空间方面:
int : 4字节
bigint : 8字节
uuid : 16字节

具体区别以及不同场景下的选择:
https://maplefix.top/archives/uuid-or-increase-of-mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值