MySQL的一些使用细节

一、性能

1、除非确实需要表中的每个列,否则最好别使用*统配符;

      检索不需要的列通常会降低检索和应用程序的性能。

二、DESC关键字

    DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。

三、BETWEEN关键字

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

四、NULL与不匹配、LIKE '%'、AVG()/MAX()/MIN()/SUM()函数、COUNT()

    4.1 在通过过滤选择出不具有特定值的行时,可能希望返回具有NULL值的行。未知具有特殊含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。

例如下面的语句,不能匹配到prod_price值为NULL的数据。

select prod_name from products where prod_price != 30;

   4.2 WHERE prod_name LIKE '%' 也不能匹配用值NULL作为产品名的行。

   4.3 AVG()和MAX()和MIN()和SUM()函数忽略列值为NULL的行。

   4.4 COUNT()函数有两种使用方式

      使用COUNT(*)对表中行的数目进行计数,不管列中包含的是空值(NULL)还是非空值;

      使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

五、OR和AND、IN

    SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。当AND和OR同时出现在过滤条件中时,应该使用圆括号明确地分组相应的操作符。

六、MySQL的日期格式

    MySQL使用的日期格式。指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd

例如:

SELECT prod_name,prod_price FROM products WHERE (vend_id =1202 OR vend_id = 1003) AND prod_price >=10;

    IN操作符完成与OR相同的功能。

   IN操作符一般比OR操作符清单执行更快。IN的最大优点是可以包含其他SELECT语句。

猜你喜欢

转载自blog.csdn.net/hefrankeleyn/article/details/84962763