目录
(1) 数据类型;
(2)表名、字段名的设计规则;
(3)字符集;
(4)字符串函数—3.1-3.5;
(5) 字母大小写转换功能;
(6) 数学函数;
(7)日期运算功能;
(8)类型转换函数;
(9)类型转换函数;
(十)特殊功能;
(11)聚合函数;
(12)简化查询语句;
(十三)条款使用标准;
(14)WHERE条件子句
大家好,我是艾米,她的名字比龙母还多(数据库守护者、程序之母、女编码员、不安分者、分布式事务数据库女王……)。
我已经成为知乎会员很长时间了。 每天潜水观看各种专家分享他们的知识让我受益匪浅。
本着“无缘无故可耻,共享荣耀,人人有份,人人有份”的精神,艾米决定也用雷锋精神向大佬们学习,把自己学到的一些技能运用到实践中。实践一下,希望能够给你带来一点帮助,如果你觉得这篇文章有用,我后面会继续分享更多有用的信息,所以记得经常查看。
(1)数据类型
1.1 数据类型分类
a) 数字类型 - ,,,INT,,
b) 时间类型—DATE,,
c) 字符串类型-CHAR,,TEXT
d) 独特类型 - ENUM、SET
1.2 特别说明
(N) 或 CHAR(N) 中 N 的含义
MySQL中定义两种类型的字符串(N)或CHAR(N)时填写的长度N并不是指字节数,而是指字符数。
浮点数
与财务相关的浮点数必须使用精确的数字类型进行存储。 为了减少由于浮点类型FLOAT sum精度不够而导致数值计算可能出现的偏差,非金融相关的浮点字段也存储在数值类型中,并且禁止使用FLOAL sum类型。 例如:(10,4) NOT NULL 0。
1.3 数据类型范围
1.4 详细说明
对于类似、类别有限的字段,建议使用能够清晰表达实际含义的字符串,而不是INT等数字。 因此,建议使用枚举类型ENUM和设置类型SET;
使用UTF8时,由于是变长字符集,所以定长字符串和动态长度字符串都适用;
只有当字符数可能超过20000时,才可以使用TEXT/类型来存储字符数据。 建议所有使用TEXT/类型的字段与原表分离,与原表主键分开存放在另一张表中;
需要精确时间的字段(年、月、日、时、分、秒)可以使用or,但请注意各自可以表达的范围,以及是否需要使用该特征。 尝试使用类型替换来减少数据存储空间的占用; 需要毫秒和微秒。 ,使用(3)或(6),以及(3)和(6)(注:社区版从5.6开始也支持.,并且支持任意数字和组合);
所有只需要精确到日的字段都必须使用DATE类型,不能使用or类型;
具有自增序列特性的字段只能使用INT或者强烈建议明确标识为无符号类型(关键字:)。 除非确实出现负数,否则只有当字段的值将超过42亿时才使用该类型,并且自增字段必须用作主键或主键的一部分;
INT(N)中N的含义
MySQL中各种类型的整数也可以包含长度。 该长度的含义与类型的长度不同。 N值的大小完全不影响该值的存储范围,只是影响有时显示的长度。
空字符串的含义
MySQL中字符串有3种容易混淆的值:空字符串''、空值NULL和NULL字符串'NULL',所以需要注意判断。 和 最大的区别在于,它不区分空字符串 '' 和空值 NULL。
1.1.5 片段字段数据类型选择
禁止选择大字段类型,以及不精确的浮点和空格类型字段作为分片字段的数据类型。
禁止作为分片字段的类型如下表所示:
避免对分片字段使用二进制类型。
避免对分片字段使用二进制排序规则。 您可以在MySQL数据库中执行SQL语句来查找二进制排序规则: * from . 就像“%bin”一样;
(2)表名和字段名设计规则
表名是分布式事务数据库的心跳表。 请不要在业务系统中使用该表名。
字段名 dnid 是分布式事务数据库的 QUERY 功能点。 因此,在设计业务系统的表结构时,请不要在任何表中使用dnid字段名。
(3) 字符集
字符集UTF-8编码基本表达了我们日常使用的汉字、字母或文字,也兼容了更多的语言。 其次,项目中使用的编程语言是JAVA,JAVA开发工具的语言默认也是UTF-8。
如果项目中的业务数据不需要区分大小写字母,我们的建议是:字符集统一为utf8,字符集校对规则为; 如果研究项目中的业务数据不需要区分大小写字母,则字符集校对规则为::。
如果项目中的业务数据中有特殊字符(emoji表情),则会统一字符集。 如果不区分大小写,则字符集排序规则是区分大小写的。 如果需要区分大小写,则字符集排序规则是。
使用utf8编码时,汉字和符号在存储时实际上占用三个字节,而数值、字母和符号(注:英文输入法下)只占用一个字节。 例如:
表格((40)); 最多可存储40个字符;
存储“U-Cloud”,占用存储空间为:7字节(注:变长会额外增加1字节或2字节,此处实际占用存储空间为:8字节);
使用编码时,emoji特殊符号实际存储占用4个字节,而汉字占用3个字节,数值、字母和符号(注:英文输入法下)仅占用1个字节。
特别提示
随着移动互联网业务的发展,越来越多的移动终端支持一些特殊符号的输入。 如果字符编码空间超过3字节,可以使用4字节编码。 不区分字母大小的示例如下:
标签 ((40) 套
); 最多可存储40个字符,字符本身最大占用存储空间160字节。
--------------------------
今天我就更新到这里吧。 以下内容将持续发布。 如果您感兴趣,可以继续关注我。 如果您有任何疑问,欢迎您在评论中指出。 下一期再见!