`
zimo
  • 浏览: 848 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SQL书写风格

 
阅读更多
SQL书写风格
1. SQL语句全部使用小写。★
2. 引用字符时用单引号。如:update testable set idcol=’abcd’。 ★
3. 连接符或运算符or、in、and、=、<=、>=, +,- 等前后加上一个空格。
4. 严禁使用select * …….形式的语句,必须指出select的具体字段,即select col1, col2,… from tablea where ….★
5. 严禁使用 insert into table values(?,?,?),必须指出具体要赋值的字段,即 insert into tablea (col1, col2,…) values(?,?,…)★
6. SQL语句包含多表连接时,建议对每个表命名别名,对每个字段的使用都要带上表别名,即 select a.col1, a.col2, b.col3 from tablea a, tableb b where a.col4=b.col5
7. 避免隐含的类型转换。例如在where子句中numeric 型和int型的列的比较或相加。★
8. 读取是指通过JDBC读到的数据格式,保存是指保存在VO中的数据格式,插入或者更新是指insert或者update语句中的数据格式。
a) 整型字段:读取时根据字段设置保存为Integer或者Long。
b) 数字型字段:读取为BigDecimal,并保存为UFDouble,插入或者更新时为BigDecimal。
c) 字符型字段:读取为String,并保存为String,插入或者更新为String。
d) 布尔型字段:读取为String(‘Y’ OR ‘N’),并保存为UFBoolean,插入或者更新时为String(‘Y’ OR ‘N’)。
e) 时间字段:读取为String,并保存为UFDateTime,插入或者更新时的时间格式由中间件统一处理,有单独需求的要申请后才能决定。 
9. 在子查询中前后必须加上括号, select col1, col2 from tablea where col3 in ( select col4 from tableb where col4>0)★
10. 避免在where使用'1=1','1=2'这种表达式作为部分条件,如 select col1, col2 from tablea where 1=1 and col1 >0。
11. 禁止使用视图。★
17.2.1.3. 性能优化
1. 尽量使用prepareStatement,利用预处理功能。
2. 在进行多条记录的增加、修改、删除时,建议使用批处理功能,批处理的次数以整个SQL语句不超过相应数据库的SQL语句大小的限制为准。
3. 建议每条SQL 语句中in中的元素个数在500以下,如果个数超过时,应拆分为多条SQL语句。禁止使用xx in(‘’,’’….) or xx in(‘’,’’,’’)。★
4. 禁止使用or 超过 500,如 xx =’123’ or xx=’456’。 ★
5. 尽量不使用外连接。
6. 禁止使用not in 语句,建议用not exist。★
7. 禁止使用Union, 如果有业务需要,请拆分为两个查询。★
8. 禁止在一条SQL语句中使用3层以上的嵌套查询,如果有,请考虑使用临时表或中间结果集。★
9. 尽量避免在一条SQL语句中从>= 4个表中同时取数,对于仅是作为过滤条件关联,但不涉及取数的表,不参与表个数计算;如果必须关联4个或4个以上表,尽量采用子查询的方式。
10. 尽量避免使用order by和group by排序操作,因为大量的排序操作影响系统性能。如必须使用排序操作,尽量建立在有索引的列上。
11. 对索引列的比较,尽量避免使用NOT 或 !=,可以考虑拆分为几个条件。如col1 是索引列,条件col1 !=0 可以拆分为col1 >0 or col2 <0
12. 任何对列的操作都将导致表扫描,所以应尽量将数据库函数、计算表达式写在逻辑操作符右边。
13. 在对char类型比较时,建议不要使用rtrim()函数,应该在程序中将不足的长度补齐。
14. 用多表连接代替EXISTS子句。
15. 如果有多表连接时,应该有主从之分,并尽量从一个表取数, 如select a.col1, a.col2 from a join b on a.col3=b.col4 where b.col5 = ‘a’。
16. 在where子句中,如果有多个过滤条件,应将索引列或过滤记录数最多的条件应该放在前面。
17. 在使用Like时,建议Like 的一边是字符串,表列在一边出现。
分享到:
评论

相关推荐

    sql书写优化和性能优化

    #### 一、书写风格 **1. SQL语句全部使用小写** 为了保持代码一致性与可读性,所有SQL语句均需使用小写字母编写。这一规则适用于所有的关键字、函数名称及操作符等。 **2. 引用字符时使用单引号** 当需要引用...

    SQL语句辅助工具

    在实际开发中,这样的工具可以帮助开发团队保持代码的一致性和可维护性,特别是在大型项目中,当有多人协作编写涉及数据库操作的代码时,避免了因SQL书写风格不一带来的困扰。 总结来说,"SQL语句辅助工具"是一个...

    SQL书写规范;书写优化性能建议;经验性规则

    一、sql书写规范: 二、书写优化性能建议 三、其他经验性规则 一、sql书写规范: 1、sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。 2、连接符or、in、and、以及=、、&gt;=等前后...

    Oracle——sql语句优化

    即便查询逻辑相同,不同的SQL书写风格也可能导致性能差异。例如,指明表所有者、统一大小写、避免无意义的空格等细节,都可能影响到查询计划的选择,进而影响性能。 **总结** SQL语句优化是一项细致入微的工作,...

    sql 书写规范

    4. SQL 语句的缩进风格,一行有多列,超过 80 个字符时,基于列对齐原则,采用下行缩进。 5. 多表连接时,使用表的别名来引用列。 6. 供别的文件或函数调用的函数,绝不应使用全局变量交换数据。 7. 变量命名不能...

    oracle basic

    共享SQL语句能显著提高性能,通过使用绑定变量和统一SQL书写风格,可以减少硬解析,提高SQL语句的复用率。通过查询`v$sgastat`视图可以监控Shared Pool的状态,而`v$sql`视图则有助于识别未被共享的SQL语句,进一步...

    良好的SQL编码风格.pdf

    初学者往往受到高级语言过程化编码思路的影响,导致无法清晰地理解逻辑,并且在书写SQL语句时随意性较大,没有遵循良好的编码风格,使得逻辑表述不清晰。这主要因为SQL的逻辑组织方式与高级语言存在较大差异。 为...

    MySQL规范.zip

    - **SQL书写风格**:保持SQL语句的一致性,如使用大写字母写关键字,小写字母写表名和列名,以提高可读性。 - **避免全表扫描**:尽可能使用索引来减少数据扫描量,避免`SELECT *`,只选择需要的列。 - **合理...

    SQL编程书写的规范及一些书写优化性能建议

    一、SQL书写规范: 1. **命名约定**:推荐所有表名、字段名使用小写字母,系统保留字、内置函数名、SQL保留字使用大写字母,以便区分。 2. **空格使用**:在逻辑运算符(如`OR`、`IN`、`AND`)和比较运算符(如`=`、...

    ORACLE高效SQL-书写规范1

    保持SQL语句风格一致,有助于ORACLE的共享SQL机制,在共享池中快速找到匹配的SQL,减少解析时间。 1-2、日期格式明确化 在处理日期时,应该显式地指定日期格式,避免依赖默认的NLS_DATE_FORMAT参数。使用TO_CHAR或...

    SQL编程规范(还不错哦)

    4. SQL 语句的缩进风格采取基于列对齐原则,超过 80 个字符时,基于列对齐原则,采用下行缩进。 5. 多表连接时,使用表的别名来引用列。 书写优化性能建议 书写优化性能建议旨在提高 SQL 代码的执行效率。主要规则...

    sql脚本优化

    今天根据经验总结一些高级查询(SQL)及SQL效率优化,有时同样能达到查询效果,但也许系统所耗费的资源可能有很大差异,由于SQL书写的影响,同一功能同一性能不同写法SQL的影响。下面是sql语句优化的一些提示要点,...

    SqlBuild使用说明

    SqlBuild 使用纯 Java 代码书写,使用 SWT 技术使画面与 Windows 风格一致,可以使用在任何操作系统上。SqlBuild 还使用了鼠标拖曳技术,提高了用户体验。 八、应用场景 SqlBuild 适用于任何需要连接数据库、书写 ...

    SQL格式化工具2.8.7汉化+破解

    以别人风格书写的代码是不是不太好懂?如果碰上一团糟的代码(估计概率不小),那更是让你抓狂。 经常分发自己编写的SQL代码给别人,不管是通过博客、论坛、Email、还是其他方式,不规范的代码会让你看上去很不专业...

    SqlBuild

    ) 本软件使用纯Java代码书写,使用swt技术使画面与windows风格一致,可以使用在任何操作系统上。在画面操作易用性方面:使用了鼠标拖曳技术。 作者(msn:boyman78x@hotmail.com) 使用场所: 使用到...

    sql编码规范

    * 代码块应严格采用缩进风格书写,保证代码清晰易读,风格一致,统一缩进格数 2 个空格。 * 当同一条语句超过一行时,每行的第一个关键字与第一行的关键字进行右对齐。但 insert into … select 除外。 * 对于 ...

    SqlBuild 1.1

    )本软件使用纯Java代码书写,使用swt技术使画面与windows风格一致,可以使用在任何操作系统上。在画面操作易用性方面:使用了鼠标拖曳技术。 作者(msn:boyman78x@hotmail.com) 使用场所:  使用到...

    java中MybatisPlus中常见的案例,通用Mapper通用Service,以及XML书写SQL语句进行增删改查常见操作

    基于java的高级知识, 对Mybatis+SpringBoot+Restful风格的增强其中MybatisPlus中常见的案例,通用Mapper通用Service,以及XML书写SQL语句进行增删改查常见操作

    将SQL字符串按不同开发语言格式化

    然而,不同的开发环境和语言可能对SQL语句的书写规范有不同的要求,这给开发者带来了不便。针对这一问题,我们有“将SQL字符串按不同开发语言格式化”的工具,如压缩包中的"SQL Pretty Printer",它可以帮助开发者...

Global site tag (gtag.js) - Google Analytics