基础排序:
单列排序:
前面我们学习了数据的查询,查询出来的数据没有特定的顺序,要将查询出来的数据排序,我们可是使用ORDER BY语句:
例如我们将年龄按照升序排列:
select age from user_profile order by age
多列排序:
有时候我们要对多个列进行查询并排序,可以在order by后写多个列名,之间使用逗号隔开,排序按照先后顺序依次排序。
例如我们按照年龄age和分数gpa排序:
select device_id,age,gpa from user_profile order by age, gpa
升序降序:
默认使用order by排序,排序结果按照升序显示,要使用降序操作,需要加上关键词DESC。
例如我们要对age进行降序排序:
select age from user_profile order by age desc
这里注意一点,如果是多列排序,desc只应用到它前面的列名。
基础操作符:
where语句:
在SQL语法中,WHERE语句可以对数据进行过滤,WHERE语句常跟在From后。
例如我们要检索性别为男性的数据:
select device_id from user_profile where gender='male'
基础操作符:
WHERE语句需要和操作符搭配使用,比如等号‘=’,这里还有几个常见的操作符。
不等于号:在SQL中的写法是<>或者!=,表示不满足条件的数据。
大于号小于号:大于号>小于号<,表示大于或小于条件的数据。
范围值:范围值的限制方式是between n1 and n2,n1和n2表示要限制的范围区间,注意and前的值一定要小于and后的值,且会保留两端点的值。
空值:当字段不包含任何一个值,我们就说他是空值。
例如这个WHERE的字句,返回性别值为空的数据:
select device_id,gender,age,from user_profile Where gender is Null
当然,Not Null的用法类似,意义相反。
高级操作符:
我们来学习一下怎么使用WHERE字句建立功能更强的搜索条件:
AND操作符:我们要查找同时满足多个条件的数据就要使用and操作符。
例如我们要查询年龄小于30的男性用户:
select device_id,age,from user_profile where age < 30 and gender='male'
OR操作符:我们要查询满足多个条件的一个以上的数据,使用or进行连接。
例如我们要查询山东大学和复旦大学的学生:
select device_id,gender,age from user_profile where university='山东大学' or university='复旦大学'
IN 和 NOT IN:
这两个操作符可以来指定范围,其后使用逗号把圆括号里的合法数据分隔开。
例如要查询北京大学和复旦大学的学生数据:
select device_id,gender,age,university,gpa from user_profile where university in ('北京大学','复旦大学')
操作符的混合运用:
注意操作符的优先级,SQL处理时,先OR后AND,为防止逻辑混乱,可以使用括号。
例如要查询北京大学和gpa大于3.5的山东大学的学生数据:
select device_id.gender,age,university,gpa from user_profile where university = '北京大学' or (gpa > 3.5 and university = '山东大学')
Like操作符—模糊匹配
Like操作符需要和通配符结合使用,最常用的就是%,%表示任何字符出现任意次数。
例如查询所有学校中以北京开头的用户:
select device_id,gender,age,university,gpa from user_profile where university like '北京%'