Mysql建表细节

字符集选择

在国内正常都是用 utf-8

#UTF-8 编码中

一个数字或者英文占用一个字节
一个中文汉字为三个字节。

排序选择

排序一般分为两种:utf_bin 和 utf_general_ci
bin 是二进制, a 和 A 会别区别对待.

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用【二进制数据】编译存储。 区分大小写,而且可以存二进制的内容

数据类型

char

char(N),N表示的是字符数不是字节数。

可以用来存储固定大小的格式:

身份证号:char(18)
手机号:char(11)
varchar

varchar(N),N表示的是字符数不是字节数。

varchar(255),可以最大存储255个汉字,需要根据实际的宽度来选择N。
int

int最大长度是11. 如果在建表时不指定字段int类型的长度时,系统则默认生成长度为11的字段。11也是int类型的最大长度,其中第一位表示符号+或者-,后面十位表示数字。 如果指定了长度,该字段其实也是长度为11的字段,因为只要是int类型,系统都分配了长度11位。 所以,当我们在用mysql数据库建表时如果有字段为int类型则不用指定长度了。

年龄:int(3)  //三位数
性别:int(1)  //一位数,0男、1女
datetime
自动设置默认值:默认为当前系统时间
CURRENT_TIMESTAMP

其他:

使用VARBINARY存储变长字符串。

存储年使用YEAR类型。

存储日期使用DATE类型。(mysql会自动截取日期信息)

存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。

建议字段定义为NOT NULL。(not null的效率比null高)

将过大字段拆分到其他表中。(执行效率更快)

禁止在数据库中使用VARBINARY,BLOB存储图片,文件等。( 采用分布式系统更高效)

表结构变更需要通知DBA审核。


如果惧怕前面跌宕的山岩,生命就永远只能是死水一潭。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值