MySql基础学习笔记二、排序及WHERE筛选
5.排序检索数据
5.1排序数据
子句(clause): SQL语句由子句构成, 有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELECT语句的FROM子句。
以字母顺序排序数据返回products表中prod_name列
5.2按多个列排序
首先按prod_price排序,再按prod_name排序
5.3指定排序方向
ORDER BY子句默认以升序排序,添加DESC关键字后为降序排序
prod_price降序排序,prod_name升序排序
最贵物品的值
6.过滤数据
6.1使用WHERE子句
从products表中检测两个列,但不返回所有行,只返回prod_price值为2.50的行
ORDER BY 位于WHERE之后
6.2 WHERE子句操作符

6.2.1检测单个值
返回prod_name的值为fuses的一行
列出价格小于10美元的所有产品
检索价格小于等于10美元的所有产品
6.2.2不匹配检查
列出不是由供应商1003制造的所有产品
!=和<>操作符效果一致
6.2.3范围值检查
检索价格在5美元和10美元之间的所有产品
6.2.4空值检查

7.数据过滤
7.1组合WHERE子句
操作符(operator)用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符(logical operator)。
7.1.1 AND操作符
检索由供应商1003制造且价格小于等于10美元的所有产品的名称和价格
AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行
7.1.2 OR操作符
检索由供应商1002或1003制造的所有产品的产品名和价格
OR WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行
7.1.3 计算次序
SQL (像多数语言一样)在处理OR操作符前,优先处理AND操作符
列出价格为10美元(含)以上且由1002或1003制造的所有产品
在WHERE子句中使用圆括号 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序,即使它确实是你想要的东西也是如此。使用圆括号没有什么坏处,它能消除歧义。
7.2 IN操作符
IN WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当
检索供应商1002和1003制造的所有产品,并按prod_name升序排序
为什么要使用IN操作符?其优点具体如下。
- 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
- 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
- IN操作符一般比OR操作符清单执行更快。
- IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
7.3 NOT操作符
NOT WHERE子句中用来否定后跟条件的关键字。
NOT否定跟在它之后的条件,列出1002和1003之外供应商的vend_ id
MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别