(5)分类行
为了排序结果,使用ORDER BY子句。这里是动物生日,按日期排序:select name, birth from pet order by birth;
默认排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:SELECT name, birth FROM pet ORDER BY birth DESC;
按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面),使用下列查询:
mysql> SELECT name, species, birth FROM pet
-> ORDER BY species, birth DESC;
(6)日期计算
要想确定每个宠物有多大,可以计算当前日期的年和出生日期之间的差。如果当前日期的日历年比出生日期早,则减去一年。以下查询显示了每个宠物的出生日期、当前日期和年龄数值的年数字。
尽管查询可行,如果以某个顺序排列行,则能更容易地浏览结果。添加ORDER BY name子句按照名字对输出进行排序则能够实现
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age from pet;
了按age而非name排序输出,只要再使用一个ORDER BY子句:
mysql> SELECT name, birth, CURDATE(),(YEAR(CURDATE())-YEAR(birth))- (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age
-> FROM pet ORDER BY age;
知道哪个动物几月过生日:SELECT name, birth, MONTH(birth) FROM pet;
找出下个月生日的动物也是容易的。假定当前月是7月,那么月值是7,你可以找在8月出生的动物 (8月),方法是:SELECT name, birth FROM pet WHERE MONTH(birth) = 8;
(7)NULL值操作
使用IS NULL和IS NOT NULL操作符,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。
定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL
(8)模式匹配
要想找出以“h”开头的名字:SELECT * FROM pet WHERE name LIKE 'h%' ;
同理:
要想找出以“h”结尾的名字:select * from pet where name like '%h';
同理:
要想找出包含“h”的名字: SELECT * FROM pet WHERE name LIKE '%h%';
要想找出正好包含2个字符的名字,使用“_”模式字符:SELECT * FROM pet WHERE name LIKE '__';