MySQL必知必会 摘录

5.3 使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。
下面的例子演示如何找出最昂贵物品的值:
SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;
6.1 SQL过滤与应用过滤
数据也可以在应用层过滤。为此目的,SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行。
通常,这种实现并不令人满意。因此,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。
6.2.4 NULL与不匹配
在通过过滤选择出不具有特定值的行时,你可能希望返回具有NULL值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行。
8.2 通配符的使用技巧
正如所见,MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
 在确实需要 使用通配符时,除非绝对有必要,否则 不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。
9.2 使用MySQL正则表达式

SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000'
ORDER BY prod_name;

分析:除关键字LIKE被REGEXP替代外,这条语句看上去非常像使用LIKE的语句。它告诉MySQL:REGEXP后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理。
10.2 拼接字段
MySQL的不同之处 多数DBMS使用+或||来实现拼接,MySQL则使用 Concat()函数来实现。当把SQL语句转换成MySQL语句时一定要把这个区别铭记在心。

posted @ 2021-05-07 14:23  yx袁祥  阅读(64)  评论(0)    收藏  举报