iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >阿里11条mysql规范
  • 681
分享到

阿里11条mysql规范

阿里11条mysql规范 2018-04-09 11:04:09 681人浏览 无得
摘要

阿里开发强制要求的11条sql编写规范 【强制】不要使用count(列名)或count(常量)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。    

阿里11条mysql规范

阿里开发强制要求的11条sql编写规范

【强制】不要使用count(列名)或count(常量)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。

         说明:count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行。

 2.【强制】count(distinct col) 计算该列除NULL之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为NULL,            那么即使另一列有不同的值,也返回为0。

 3.【强制】当某一列的值全是NULL时,count(col)的返回结果为0,但sum(col)的返回结果为NULL,因此使用sum()时需注意           NPE问题。

         正例:可以使用如下方式来避免sum的NPE问题:SELECT IF(ISNULL(SUM(g)),0,SUM(g)) FROM table;

 4.【强制】使用ISNULL()来判断是否为NULL值。

             说明:NULL与任何值的直接比较都为NULL。

             1) NULL<>NULL的返回结果是NULL,而不是false。

             2) NULL=NULL的返回结果是NULL,而不是true。

             3) NULL<>1的返回结果是NULL,而不是true。

 5.【强制】 在代码中写分页查询逻辑时,若count为0应直接返回,避免执行后面的分页语句。

 6【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

    说明:以学生和成绩的关系为例,学生表中的student_id是主键,那么成绩表中的student_id则为外键。如果更新学生表中的          student_id,同时触发成绩表中的student_id更新,即为级联更新。外键与级联更新适用于单机低并发,不适合分布式、高并        发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。

【强制】禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

【强制】数据订正(特别是删除、修改记录操作)时,要先select,避免出现误删除,确认无误才能执行更新语句。

【推荐】in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内。

【参考】如果有国际化需要,所有的字符存储与表示,均以utf-8编码,注意字符统计函数的区别。

说明: SELECT LENGTH("轻松工作"); 返回为12

SELECT CHARACTER_LENGTH("轻松工作"); 返回为4

如果需要存储表情,那么选择utf8mb4来进行存储,注意它与utf-8编码的区别。

【参考】 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但TRUNCATE无事务且不触发trigger,有可能造成事故,故不建议在开发代码中使用此语句。 说明:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。

 

您可能感兴趣的文档:

--结束END--

本文标题: 阿里11条mysql规范

本文链接: http://www.lsjlt.com/news/4589.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 阿里开发手册规范(JAVA)
    目录 一、编程规约  (一) 命名规范 (二) 常量定义 (三) 代码格式  (四) OOP规约 (五) 日期时间 (六) 集合处理  (七) 并发处理 (八) 控制语句 (九) 注释规约 (十) 前后端规约 二、异常日志  (一) 错误码...
    99+
    2023-09-10
    java 开发语言
  • Java阿里巴巴代码规范
    目录 1 编程规约1.1 方法参数类型必须一致,不要出现自动装箱拆箱操作1.1.1 反例1.1.2 正例 1.2 SimpleDateFormat是线程不安全的1.2.1 反例1.2.2...
    99+
    2023-09-01
    java 代码规范 开发语言
  • 阿里云代理商管理规范
    1. 代理商资质要求 作为阿里云的代理商,需要满足以下资质要求: 具备合法的企业法人身份,拥有独立的法人资格。 具备良好的商业信誉和声誉,无不良经营记录。 具备一定的技术实力和服务能力,能够提供专业的技术支持和售后服务。 具备一定的市场...
    99+
    2023-10-27
    阿里 管理规范 代理商
  • 阿里云服务器运维规范
    标题:阿里云服务器运维规范:如何确保服务器稳定运行随着云计算的快速发展,阿里云服务器已经成为了许多企业和个人的首选。为了确保服务器的稳定运行,我们需要遵循一些运维规范。本篇文章将详细介绍阿里云服务器运维规范,并给出一些实用的建议。 阿里云服...
    99+
    2023-10-31
    阿里 服务器
  • MySQL设计规范
    1.  数据库设计规范数据库命名规范数据库基本设计规范数据库索引设计规范数据库字段设计规范SQL开发规范数据库操作规范1.1    数据库命名规范...
    99+
    2024-04-02
  • Java中16条的代码规范
    目录一、MyBatis 不要为了多个查询条件而写 1 = 1二、 迭代entrySet() 获取Map 的key 和value三、使用Collection.isEmpty() 检测空...
    99+
    2024-04-02
  • 阿里云官方Redis开发规范总结
    目录一、键值设计1. key 名设计2. value 设计3.【推荐】:控制 key 的生命周期,redis 不是垃圾桶。二、命令使用1.【推荐】 O(N)命令关注 N 的数量2.【...
    99+
    2022-11-13
    Redis开发规范 阿里云Redis开发规范
  • 阿里前端开发中的规范要求
    目录1.命名规范1.1  项目命名1.2  目录命名1.3 JS 、CSS 、SCSS 、HTML 、PNG  文件命名1.4  命名严谨性2...
    99+
    2022-12-29
    阿里前端开发中的规范要求 前端开发规范
  • MySQL阿里巴巴规约
    MySQL阿里巴巴规约 1.MySQL阿里巴巴规约【转载】2.Mysql开发规范2.1 设计规范2.2 命名规范2.3 类型规范2.4 索引规范2.5 SQL规范 1.MySQL阿里巴...
    99+
    2023-10-05
    mysql
  • 阿里巴巴_java开发规范手册详解
    1、 命名风格 1.1、代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name, $name, __name 1.2、代码中的命名严禁使用拼音与英文混合的方...
    99+
    2023-09-03
    java 1024程序员节
  • Java 重写时应当遵守的 11 条规则
    CSDN 的小伙伴们,大家好,我是沉默王二。 重写(Overriding)算是 Java 中一个非常重要的概念,理解重写到底是什么对每个 Java 程序员来说都至关重要,这篇文章就来...
    99+
    2024-04-02
  • 关于MySQL的使用规范
    这篇文章主要介绍关于MySQL的使用规范,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近涉及数据库相关操作较多,公司现有规范也不是太全面,就根据网上各路大神的相关规范,整理了一些自...
    99+
    2024-04-02
  • MySQL有哪些开发规范
    这期内容当中小编将会给大家带来有关MySQL有哪些开发规范,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 #MySQL开发规范 ##命名规范 ...
    99+
    2024-04-02
  • MySQL使用规范有哪些
    本篇内容介绍了“MySQL使用规范有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库环境dev: ...
    99+
    2024-04-02
  • MySQL开发规范有哪些
    这篇文章将为大家详细讲解有关MySQL开发规范有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基础规范使用innodb存储引擎表字符集使用utf-8所有表添加注释单表...
    99+
    2024-04-02
  • MySQL建表规范有哪些
    本篇文章给大家分享的是有关MySQL建表规范有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、MySQL建表规范1.1、准入规范级别必须...
    99+
    2024-04-02
  • MySQL的规范是怎样的
    这篇文章将为大家详细讲解有关MySQL的规范是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家...
    99+
    2023-06-28
  • MySQL操作规范有哪些
    MySQL操作规范有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 用户权限管理 创建用户命令:CREATE USER 'us...
    99+
    2024-04-02
  • MySQL准入规范有哪些
    这篇文章给大家介绍MySQL准入规范有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、数据库设计 1、表结构设计  -表中的自增列(auto_increment属性...
    99+
    2024-04-02
  • 详解Mysql 30条军规
    一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作