MySQL数据库SQL开发手册
mysql work bench工具使用手册800字左右

mysql work bench工具使用手册800字左右MySQL Workbench 是一个全面的数据库管理工具,它提供了数据建模、SQL 开发、数据库管理等功能。
以下是 MySQL Workbench 的使用手册,帮助你更好地利用这个强大的工具。
一、安装与启动首先,你需要从 MySQL 官方网站下载并安装 MySQL Workbench。
安装完成后,双击图标即可启动。
二、创建数据库在 MySQL Workbench 中,你可以方便地创建新的数据库。
点击左侧导航栏的 "+" 符号,选择 "SQL" -> "CREATE DATABASE",然后输入数据库名称,点击执行按钮即可创建新的数据库。
三、数据建模在 MySQL Workbench 中,你可以使用数据建模工具设计数据库结构。
在"File" -> "New Model" 菜单中,选择 "ER Diagram" 或 "Data Model",然后开始设计你的数据库模型。
你可以添加表、字段、主键、外键等,并设置它们之间的关系。
四、SQL 开发MySQL Workbench 提供了强大的 SQL 编辑器,支持语法高亮、自动补全、执行 SQL 语句等功能。
你可以直接在编辑器中编写 SQL 语句,或者在数据模型中生成 SQL 语句。
五、数据库管理MySQL Workbench 还提供了数据库管理功能,如导入导出数据、备份恢复数据库、查看性能监控等。
你可以在左侧导航栏中展开你的数据库,查看表的数据、执行 SQL 语句等。
六、用户与权限管理在 MySQL Workbench 中,你可以方便地管理数据库的用户和权限。
在左侧导航栏中展开"Users and Privileges",你可以添加新用户、分配权限等。
mysql8 参考手册

mysql8 参考手册MySQL8是一种开源的关系型数据库管理系统,广泛应用于Web应用程序的开发中。
它提供了强大的功能和灵活的配置选项,使得用户可以根据自己的需求对数据库进行定制化设置。
MySQL8的参考手册是开发者使用MySQL8的重要工具之一,通过阅读参考手册,用户可以了解MySQL8的各种特性和功能,从而更加高效地使用这个数据库管理系统。
在MySQL8的参考手册中,用户可以找到关于MySQL8安装、配置、管理、优化等方面的详细说明。
其中,安装和配置部分主要介绍了如何在不同操作系统上安装MySQL8,以及如何进行基本的配置操作,包括设置数据库的字符集、优化参数等。
这些内容对于初次接触MySQL8的用户来说是非常重要的,可以帮助他们快速地上手并开始使用这个数据库管理系统。
另外,在MySQL8的参考手册中,用户还可以找到关于SQL语法、存储引擎、事务处理、备份恢复等方面的详细说明。
SQL语法部分介绍了MySQL8支持的各种SQL语句和函数,用户可以通过学习这些内容来提升自己在SQL编程方面的能力。
存储引擎部分介绍了MySQL8支持的不同存储引擎,用户可以根据自己的需求选择合适的存储引擎来存储数据。
事务处理和备份恢复部分介绍了如何在MySQL8中进行事务处理和备份恢复操作,这对于保障数据的完整性和安全性非常重要。
此外,在MySQL8的参考手册中,用户还可以找到关于性能优化、安全设置、监控调优等方面的详细说明。
性能优化部分介绍了如何通过合理的索引设计、查询优化等手段来提升数据库的性能,用户可以根据这些内容来对自己的数据库进行性能调优。
安全设置部分介绍了如何在MySQL8中设置用户权限、加密数据等安全操作,用户可以通过这些内容来保障自己的数据库安全。
监控调优部分介绍了如何使用MySQL8提供的监控工具来监控数据库的运行状态,并根据监控结果进行调优操作,以保证数据库的稳定性和可靠性。
总的来说,MySQL8的参考手册是使用MySQL8的重要工具之一,通过阅读参考手册,用户可以了解MySQL8的各种特性和功能,从而更加高效地使用这个数据库管理系统。
mysql中文参考文档

mysql中⽂参考⽂档
MySQL是最流⾏的开放源码SQL数据库管理系统,具有快速、可靠和易于使⽤的特点。
同时MySQL也是⼀种关联数据库管理系统,具有很⾼的响应速度和灵活性。
⼜因为mysql拥有良好的连通性、速度和安全性,这使的MySQL⼗分适合于访问Internet上的数据库。
现在MySQL的普及率已经⾮常⾼,⼏乎所有的中⼩型项⽬都在⽤,因此学好MySQL⾄关重要。
我们在编程过程中经常需要查找与MySQL相关的资料,但是⽹上的知识零零碎碎,总是不能够系统全⾯地学习,这⾥为⼤家推荐开发的()。
打开⽹址可以看到这是⼀个类似chm格式但可以在线浏览的,⾮常的完美,该⼿册详细讲解了:如何安装mysql,MySQL管理器,查询浏览器,移植⼯具包,以及sql语句语法,优化,函数和操作符,存储引擎和表类型等等内容,是学习mysq必备的参考⼿册,能够让⼴⼤⽹友们更好更轻松的掌握mysql数据库。
mysql教案讲解(详细)

MySQL教案讲解(详细)教案章节:一、MySQL简介1.1 MySQL的历史和发展1.2 MySQL的特点和优势1.3 MySQL的安装和配置二、数据库的基本概念2.1 数据库的概念和分类2.2 数据表的结构和设计2.3 数据库的创建和管理三、SQL语言基础3.1 SQL语言简介3.2 数据定义语言(DDL)3.3 数据操作语言(DML)3.4 数据查询语言(DQL)四、数据库的增删改查操作4.1 数据的插入操作4.2 数据的删除操作4.3 数据的更新操作4.4 数据的查询操作五、索引和约束5.1 索引的概念和作用5.2 索引的创建和管理5.3 约束的概念和作用5.4 约束的添加和删除MySQL教案讲解(详细)教案章节:六、数据库的高级查询6.1 联合查询6.2 子查询6.3 数据汇总和分组6.4 排序和限制七、存储过程和函数7.1 存储过程的概念和作用7.2 存储过程的创建和执行7.3 存储函数的概念和作用7.4 存储函数的创建和执行八、触发器和事件8.1 触发器的概念和作用8.2 触发器的创建和管理8.3 事件的调度和管理8.4 事件和触发器的应用案例九、事务管理9.1 事务的概念和特性9.2 事务的控制和处理9.3 事务的提交和回滚9.4 事务的管理和优化十、MySQL性能优化10.1 查询性能的影响因素10.2 索引优化和选择10.3 查询缓存的使用和管理10.4 数据库的备份和恢复MySQL教案讲解(详细)教案章节:十一、数据库的安全性和权限管理11.1 用户权限的概念和作用11.2 用户权限的分配和管理11.3 角色和角色的使用11.4 安全性和权限管理的最佳实践十二、MySQL备份与恢复12.1 备份的重要性和策略12.2 常用备份方法介绍12.3 恢复方法和故障排除12.4 备份与恢复的自动化管理十三、MySQL性能监控与调优13.1 性能监控的关键指标13.2 性能分析工具的使用13.3 查询优化的策略和方法13.4 系统配置的优化指南十四、MySQL replication(复制)14.1 复制的工作原理和类型14.2 主从复制的设置和维护14.3 复制延迟和故障处理14.4 复制在高可用性方案中的应用十五、MySQL的高级特性15.1 全文索引和搜索15.2 空间数据类型和地理信息查询15.3 事件调度和定时任务15.4 数据库的性能分析和监控工具重点和难点解析重点:MySQL的历史和发展,特点和优势数据库的基本概念,包括数据库的分类,数据表的结构和设计,数据库的创建和管理SQL语言基础,包括DDL,DML,DQL数据库的增删改查操作索引和约束的使用和管理数据库的高级查询,包括联合查询,子查询,数据汇总和分组,排序和限制存储过程和函数的创建和执行触发器和事件的创建和管理事务的特性和管理数据库的安全性和权限管理备份与恢复策略和方法性能监控与调优的关键指标和工具复制的工作原理和类型,主从复制的设置和维护全文索引和搜索,空间数据类型和地理信息查询事件调度和定时任务,数据库的性能分析和监控工具难点:MySQL的安装和配置细节复杂SQL查询的编写和优化存储过程和函数的高级应用触发器和事件的精确控制和调度事务的并发控制和故障处理高级查询优化和性能调优复制中的延迟和故障处理全文索引和空间数据类型的应用场景事件调度和定时任务的复杂场景设计。
使用SQL语句进行MySQL数据的插入与查询

使用SQL语句进行MySQL数据的插入与查询在现代信息时代,数据扮演着至关重要的角色。
而MySQL作为一个广受欢迎的关系型数据库管理系统,被广泛应用于各类软件开发、网站构建以及数据存储等领域。
正确地使用SQL语句进行MySQL数据的插入与查询,将有助于高效地管理和操作数据。
本文将探讨如何使用SQL语句进行MySQL数据的插入与查询,并提供一些实用的技巧和建议。
一、插入数据插入数据是数据库操作中最基本且常见的操作之一。
通过使用SQL的INSERT INTO语句,我们可以将数据插入到MySQL数据库的指定表中。
下面是一个简单的示例:```sqlINSERT INTO 表名 (列1, 列2, 列3)VALUES (值1, 值2, 值3);```其中,表名是要插入数据的目标表的名称;列1、列2、列3是目标表中要插入数据的列名;值1、值2、值3是要插入的具体数值。
在实际应用中,我们需要根据具体情况进行调整和扩展。
除了单条插入数据外,还可以使用INSERT INTO语句一次性插入多条数据。
例如:```sqlINSERT INTO 表名 (列1, 列2, 列3)VALUES (值1, 值2, 值3), (值1, 值2, 值3), (值1, 值2, 值3);在插入数据时,可以使用SQL的SELECT子句来选择插入的数据来源。
例如:```sqlINSERT INTO 表名 (列1, 列2, 列3)SELECT 列1, 列2, 列3FROM 其他表名WHERE 条件;```这样就可以将其他表中符合条件的数据插入到目标表中。
二、查询数据查询数据是使用SQL语句进行MySQL操作的另一个常见任务。
通过使用SELECT语句,我们可以从指定表中检索出所需的数据。
最简单的SELECT语句格式如下:```sqlSELECT 列1, 列2, 列3FROM 表名;```其中,列1、列2、列3是要检索的列名,也可以使用*代表所有列;表名是目标表的名称。
数据库原理与设计(MySQL版)实验指导

数据库原理与设计(MySQL版)附录A MySQL实验指导实验一数据库和表的管理一、实验目的1. 了解MySQL数据库的逻辑结构和物理结构的特点。
2. 学会使用SQL语句创建、选择、删除数据库。
3. 学会使用SQL语句创建、修改、删除表。
4. 学会使用SQL语句对表进行插入、修改和删除数据操作。
5. 了解MySQL的常用数据类型。
二、实验内容1. 使用SQL语句创建数据库studentsdb。
2. 使用SQL语句选择studentsdb为当前使用数据库。
3. 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
表1 student_info表结构表2 curriculum表结构列名数据类型允许NULL值主键课程编号char(4) 否是课程名称varchar(50) 是否学分int 是否表3 grade表结构列名数据类型允许NULL值主键学号char(4) 否是课程编号char(4) 否是分数int 是否4. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade 表插入数据,各表数据如表4-表6所示。
表4 student_info表的数据表6 grade表的数据学号课程编号分数0001 0001 800001 0002 910001 0003 880001 0004 850001 0005 770002 0001 730002 0002 680002 0003 800002 0004 790002 0005 730003 0001 840003 0002 920003 0003 810003 0004 820003 0005 755.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
MySQL中文参考手册

MySQL中⽂参考⼿册1 MySQL 的⼀般信息这是MySQL参考⼿册;它记载了MySQL版本3.23.7-alpha。
MySQL 是⼀个快速、多线程、多⽤户和强壮的SQL数据库服务器。
对Unix和 OS/2 平台,MySQL基本上是免费的;但对微软平台,你在30 天的试⽤期后必须获得⼀个MySQL 许可证。
详见。
提供有关MySQL的最新信息。
对于MySQL能⼒的讨论,详见。
对于安装指南,见。
对于有关移植MySQL到新机器或操作系统的技巧,参见。
有关从 3.21 版升级的信息,详见。
MySQL的⼊门教程,见。
SQL和基准信息的例⼦,见基准⽬录(在分发中的'sql-bench'⽬录)。
对于新特征和错误修复⼀个历史记录,见。
对于当前已知错误和功能缺陷的⼀张列表,见。
未来计划,见。
这个计划的所有贡献者的名单,见。
重要:将臭⾍(错误)报告、问提和建议发到邮件列表(原⽂未提供)。
对源代码分发,mysqlbug 脚本可在‘scripts’⽬录下找到。
对⼆进制的分发,mysqlbug可在‘bin’⽬录下找到。
如果你有任何关于这本⼿册的增补或修正的任何建议,请将它们发给⼿册⼩组()。
1.1 什么是 MySQL?MySQL是⼀个真正的多⽤户、多线程SQL数据库服务器。
SQL(结构化查询语⾔)是世界上最流⾏的和标准化的数据库语⾔。
MySQL是以⼀个客户机/服务器结构的实现,它由⼀个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是⼀种标准化的语⾔,它使得存储、更新和存取信息更容易。
例如,你能⽤SQL语⾔为⼀个⽹站检索产品信息及存储顾客信息,同时MySQL也⾜够快和灵活以允许你存储记录⽂件和图像。
MySQL 主要⽬标是快速、健壮和易⽤。
最初是因为我们需要这样⼀个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的⼚家在⼀个数量级上的⼤型数据库,但速度更快,MySQL就开发出来。
⾃1996年以来,我们⼀直都在使⽤MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万⾏,这⼤约有100 个吉字节(GB)的关键应⽤数据。
初学者必读的SQL数据库基础教程

初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL数据库SQL开发手册目录一、编写目的 (4)(一)简介 (4)(二)范围 (4)(三)术语和定义 (4)二、创建规范 (5)(一)通用 (5)(二)兼容性规约 (5)(三)建表规约 (6)(四)主键规约 (7)(五)索引规约 (7)三、开发规范 (9)(一)通用 (9)(二)Insert (9)(三)Delete (10)(四)Update (10)(五)Select (10)(六)From (11)(七)Where (11)(八)Group by (11)(九)Having (12)(十)Order by (12)(十一)Limit (12)四、优化规范 (13)(一)通用 (13)(二)Insert (14)(三)Update (14)(四)Delete (14)(五)Join (14)(六)or (14)(七)Group by (15)(八)Order by (15)(九)Limit (15)(十)子查询 (16)五、附录 (17)(一) A 保留字 (17)一、编写目的(一) 简介针对关系型数据库MySQL的相关特性,拟定的相关开发过程的规范,其旨在通过该规范的约束和建议,使开发人员可以在他们所编写的代码中保持统一正确的风格,提供代码的可读性以及减少出现错误的几率。
(二) 范围本规范仅适用于环境MySQL数据库以及其对应的SQL脚本语言。
(三) 术语和定义本规范采用以下的术语描述:★强制:必须遵从使用的原则。
★规则:如无特殊情况,应该遵守的原则。
★推荐:建议遵守的原则。
★参考:开发人员可以参考了解的原则。
二、创建规范(一) 通用1. 【强制】表必须有主键2. 【强制】禁用外键3. 【强制】禁用视图4. 【强制】禁用分区表5. 【强制】禁用使用MyISAM引擎6. 【规则】日志类表:a) 不入库,存成文件;b) 入库,明确生命周期,保留业务必须数据,定期清理。
7. 【推荐】库名与应用名称尽量一致,长度控制在15个字符以内。
8. 【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。
正例:人的年龄用unsigned tinyint(范围0-255,人的寿命不会超过255 岁);海龟就必须是smallint,但如果是太阳的年龄,就必须是int;如果是所有恒星的年龄都加起来,那么就必须使用bigint。
(二) 兼容性规约1. 【强制】禁用触发器、存储过程、自定义函数、EVENTS2. 【规则】禁止使用hint3. 【强制】禁用数据库保留字,如desc、range、match、delayed 等,详见附录A 保留字4. 【强制】禁止使用字段属性default current_timestamp on updatecurrent_timestamp,该功能直接在程序中实现。
5. 【强制】禁止使用encryption、key_block_size、avg_row_length、max_rows、min_rows等表的属性(三) 建表规约1. 【强制】所有业务表必须使用Innodb引擎2. 【强制】字符集和应用层必须保持一致UTF83. 【强制】必须显式指定engine和charset4. 【强制】表和字段应该有必要的注释5. 【强制】创建表时,必须创建主键6. 【强制】不同表之间的相同字段或者关联字段,字段类型要保持一致7. 【强制】临时表、备份表、历史表要使用后缀tmp、bak、his字段标明,并提供数据生命周期8. 【强制】表达是与否概念的字段,必须使用is_xxx 的方式命名,数据类型是unsigned tinyint( 1 表示是,0 表示否)。
说明:任何字段如果为非负数,必须是unsigned。
9. 【强制】表名、字段名必须使用小写字母或数字,长度限制在15个字符以内;禁止出现数字开头,禁止两个下划线中间只出现数字。
数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
正例:getter_admin,task_config,level3_name反例:GetterAdmin,taskConfig,level_3_name10. 【强制】小数类型为decimal,禁止使用float 和double。
说明:float 和double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。
如果存储的数据范围超过decimal 的范围,建议将数据拆成整数和小数分开存储。
11. 【强制】表必备三字段:id, xxx_create, xxx_modified。
说明:其中id 为主键,类型为unsigned bigint,xxx_create, xxx_modified的类型均为datetime 类型,分别记录该条数据的创建时间、修改时间。
12. 【强制】如果存储的字符串长度几乎相等,使用CHAR 定长字符串类型。
13. 【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过255,如果存储长度大于此值,建议不入库直接存成文件14. 【规则】禁止在数据库中使用大字段(blob/text)15. 【规则】单表字段数上限不得超过30个16. 【推荐】表行数不允许超过500W,超过500W时,推荐分表或冷数据下线。
17. 【推荐】使用整数保存ip地址和timestamp时间(四) 主键规约1. 【强制】禁止使用复合索引作为主键2. 【强制】禁止更新主键列3. 【规则】不使用字符串列、UUID、MD5、HASH 作为主键4. 【规则】主键要求:1) 主键字段长度要尽量小2) 主键选择数值型,使用自增或全局ID,并禁止更新3) 全局ID的生成规则:前缀+流水号规则。
前缀:时间戳等有序数字。
比如:snowflake算法把时间戳、工作机器id、序列号组合在一起。
(五) 索引规约1. 【强制】禁止使用外键,一切外键概念必须在应用层解决2. 【强制】禁止一个表上索引超过5个3. 【强制】唯一索引名为uk_字段名;普通索引名则为idx_字段名。
说明:uk_ 即unique key;idx_ 即index 的简称。
4. 【强制】在varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度。
说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为20 的索引,区分度会高达90%以上,可以使用count(distinct left(列名, 索引长度))/count(*)的区分度来确定。
5. 【规则】禁止一个字段上建有多个索引6. 【规则】命名以idx_开通,长度控制在15个字符以内。
7. 【规则】区分度低的字段,避免创建索引8. 【规则】复合索引原则:1) 复合索引中的字段数不超过3个2) 复合索引字段的顺序,区分度大的列放在前9. 【推荐】利用覆盖索引来进行查询操作,来避免回表操作。
说明:如果一本书需要知道第11 章是什么标题,会翻开第11 章对应的那一页吗?目录浏览一下就好,这个目录就是起到覆盖索引的作用。
正例:IDB 能够建立索引的种类:主键索引、唯一索引、普通索引,而覆盖索引是一种查询的一种效果,用explain 的结果,extra 列会出现:using index.三、开发规范(一) 通用1. 【强制】禁止三个表以上的关联2. 【强制】禁止跨库操作(比如:select、update等)3. 【强制】禁止无条件或永真条件的update、delete操作4. 【强制】禁止频繁的commit5. 【强制】禁止SQL语句检索行数超过100万,否则中断该数据库连接6. 【强制】禁止SQL语句返回行数超过1万,否则截取仅返回1万行7. 【强制】禁止DDL语句(truncate、alter、drop等)8. 【规则】使用explain的rows判断扫描行数,key是否使用索引9. 【规则】避免使用子查询、or,将子查询转化为表连接方式,or转化为in10. 【规则】SQL语句书写要规范1) SQL语句统一使用小写,每个词只允许有一个空格2) 避免同一SQL书写格式的不同而导致多次语法分析11. 【强制】用户请求传入的任何参数必须做有效性验证。
说明:忽略参数校验可能导致:page size 过大导致内存溢出恶意order by 导致数据库慢查询正则输入源串拒绝服务ReDOS任意重定向SQL 注入,例如sleep(10)Shell 注入反序列化注入(二) Insert1. 【规则】insert时建议指定字段名,避免字段顺序变动后数据插入错误2. 【规则】当有大量insert操作时,批量进行操作示例:一次插入多行数据insert into `t1`(`id`,`name`) values (`1`,`zhangsan`),(`2`,`lisi`),(`3`,`wang wu`);或一次一行时,使用事务延迟提交start transaction;insert into `t1`(`id`,`name`) values (`1`,`zhangsan`);insert into `t1`(`id`,`name`) values (`2`,`lisi`);insert into `t1`(`id`,`name`) values (`3`,`wangwu`);commit;(三) Delete1. 【强制】禁止delete语句无where条件或有where条件但没使用索引,否则中断该连接2. 【规则】删除大量数据时,使用limit和order by主键进行必要的分批提交(四) Update1. 【强制】禁止update语句无where条件或有where条件但没使用索引,否则中断该连接2. 【规则】更新大量数据时,使用limit和order by主键进行必要的分批提交(五) Select1. 【强制】明确查询的字段,禁止使用select *2. 【强制】禁止使用select …for update3. 【强制】不要使用count(列名)或count(常量)来替代count(*),count(*)就是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL 无关。
说明:count(*)会统计值为NULL 的行,而count(列名)不会统计此列为NULL 值的行。
4. 【强制】count(distinct col)计算该列除NULL之外的不重复数量。
注意count(distinct col1, col2) 如果其中一列全为NULL,那么即使另一列有不同的值,也返回为0。
5. 【强制】当某一列的值全是NULL 时,count(col)的返回结果为0,但sum(col)的返回结果NULL,因此使用sum()时需注意NPE(Null Pointer Exception)问题。