SQL易忽视的细节

推荐:

SQL语句优化http://blog.csdn.net/u011225629/article/details/50492403

1.主键中的值不允许修改或更新,主键值不能重用(如果某行从从列中删除,它的主键不能赋给以后的新行)。在使用多列做主键时,这多个列的组合必须是唯一的,但单个列的值可以不唯一。

2.SQL不区分大小写,但通常列名表名小写,关键字大写。所有的空格都被忽略。

3.DISTINCT关键字指示数据库只返回不同的值,注意它作用于所有列,而不仅仅是直接跟在它后面的那一列。

4.带OFFSET的LIMIT 指定返回的行数和检索的起始行,第一个被检索的行是第0行。

5.ORDER BY子句应保证是SELECT语句中的最后一条子句。DESC关键字只应用到直接位于其前面的列名。

6.用单引号来限定字符串。

7.BETWEEN匹配范围中的所有值包括指定的开始值和结束值。

8.通过过滤选择不包含指定值的所有行时,不返回包含NULL值的行,因此过滤数据时一定要验证被过滤列中含NULL 的行确实出现在返回的数据中。

9.OR短路运算。在处理OR 操作符前,先处理AND操作符。

10.IN取一组由逗号分隔,括在圆括号中的合法值,与NOT 联合使用时,可以非常简单的找出与条件不匹配的行。

e.i.WHERE NOT vend_id IN ( 'DLL01', 'BES01' )

11.LIKE操作符指示DBMS搜索模式使用通配符匹配。通配符有%(Access使用*),注意%匹配搜索模式的0个,1个或多个字符且不匹配NULL,_匹配单个字符,[]在指定字符集内匹配单个字符,此通配符用^来否定。

12.使用+或||拼接字段,但MySQL和MariaDB需要使用特殊函数。在拼接字段时需要注意许多数据库保存填充为列宽的文本值,为了正确返回格式化的数据常常使用RTRIM()去掉右边的所有空格。

13.计算字段用AS赋予别名(当然AS也可以对某字段进行重命名),别名既可以是一个单词也可以是一个字符串,当别名是字符串时需要括在括号中。

14.只使用SELECT(不需要FROM)可以检验函数,测试计算。

猜你喜欢

转载自blog.csdn.net/yjbuaa/article/details/81714557