从数据库取回数据的时候,需要限制所显示的数据行,或者将显示的结果行排序。
用查询限制行数(Limiting Rows Using a Selection)
用where子句限制输出行(Restrict the rows returned by using the WHERE clause.)
语法:
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];
限制选择的行
用WHERE子句限制从查询返回的行。一个WHERE子句包含一个必须满足的条件,WHERE子句紧跟着FROM子句。如果条件是true,返回满足条件的行。
在语法中:
WHERE 限制查询满足条件的行
condition 由列名、表达式、常数和比较操作组成
WHERE子句能够比较列值、文字值、算术表达式或者函数,WHERE子句由三个元素组成:列名,比较条件,列名、常量或值列表;
示例:
SELECT * FROM `dept` where deptno =10; --字符串和日期,在WHERE子句中字符串和日期必须包含在单引号 (‘ ’) 中。但是,数字常数不应该包含在单引号中 SELECT * FROM `dept` where loc ='new YORK';
比较条件(Comparison Conditions):
Operator Meaning
= 等于
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 不等于
BETWEEN...AND... 在两个值之间
IN(SET) 在一堆值里
LIKE 找一个想象的值
IS NULL 为一个NULL值
示例:
SELECT * FROM `dept` where deptno >=10; SELECT * FROM `dept` where deptno BETWEEN 10 AND 30; SELECT * FROM `dept` where deptno IN (10,30); SELECT * FROM `dept` where loc LIKE 'n%'; SELECT * FROM `dept` where loc IS NULL;
逻辑条件(Logical Conditions):
Operator Meaning
AND 两个条件都为真,返回"true"
OR 其中一个条件为真,返回“true”
NOT 条件为假,返回"false"
示例:
SELECT * FROM `dept` where deptno>=10 AND loc LIKE "%n%" SELECT * FROM `dept` where deptno>=10 OR loc LIKE "%n%" SELECT * FROM `dept` where deptno NOT IN(10,20) --优先原则(Rules of Precedence),从前往后: SELECT * FROM `dept` where deptno NOT IN(10,20) AND deptno>30
排序(order by):
默认的是升序(ascending order, default)
示例:
SELECT * FROM `dept` order by deptno --倒序 SELECT * FROM `dept` order by deptno DESC --还可以根据多个条件进行排序 SELECT * FROM `dept` order by deptno,dname DESC