admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:sqrt输出格式)

项目中的那些SQL语句规范,你做到了几条?

公司有SQL语句规范的参考文档,这里特别做个笔记。

书写风格

1. 语句关键字应全部使用小写。

2. 引用字符时应使用单引号。

如:update testable set idcol='abcd'。

3. 连接符或运算符or、in、and、=、<=、>=, +,- 等前后宜加上一个

空格。否则容易导致以下类似问题。

例如:

在语句select a–b from table中,a,b均为变量,拼写该语句时,如果a

= 6,b = -3,则语句变为select 6--3 from table。--被视为SQL的注释,

结果语句报错。

4. 不得使用“select * from …”语法,必须标明字段名。即select col1,

col2,… from tablea where …

5. 严禁使用“insert into table_name values (?,?,……)”语法,统一使用

“insert into table_name (col1,col2,……) values (?,?,…...)”。

6. SQL语句包含多表连接时,必须加上表的别名,对每个字段的使用都要带

上表别名。

select

1,

2,

3

from tablea a, tableb b

where 4=5

7. 应避免显式或隐含的类型转换。例如在where子句中numeric型和int

型的列的比较。

8. 在子查询中前后必须加上括号。

select

col1,

col2

from tablea

where col3 in (

select col4 from tableb

where col4>0

)

9. 执行SQL时一次应只执行一条,如果多条语句则应分开执行,但必须保持

在一个事务中。不得一次执行通过分号等分开的多条语句,这样处理不清晰。

10. 如果能采用or代替,则不宜使用in 语句。in语句中的元素不得超过

500个,如果超过,则应拆分为多条SQL语句。严禁使用xx

in(‘’,’’….) or xx in(‘’,’’,’’)。

11. or连接条件不得超过 500,超过时应拆分为多条语句。

性能优化


本文标签: 语句 使用 不得