zoukankan      html  css  js  c++  java
  • 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)可以检验函数,测试计算。

  • 相关阅读:
    linux异常处理体系结构
    网站、架构、集群相关资源
    (转)分布式Web服务器架构的演变与技术需求
    B树、B树、B+树、B*树详解(转)
    (转)事件和路由事件概述
    LCID及Culture Name列表
    触摸键盘概述
    MySQL远端连接设置
    C#实现平衡多路查找树(B树) (转)
    CentOS6.3 LAMP运营环境安装
  • 原文地址:https://www.cnblogs.com/jenayfighting/p/5152311.html
Copyright © 2011-2022 走看看