1.distinct 去重关键字 用在列名前面
eg:select distinct university from user
2.as 将查询后的进行重命名(as也可以省略)
eg:select university as u from user
3.between and 在列值得某与某之间
eg:select age from user where age between 20 and 23=select age from user where age>=20 and age<=23
4.IN:当列中的值与IN中的某个常量值相等时,则结果为True,表明此记录为符合查询条件的记录。相当于=,
NOT IN:当列中的值与某个常量值相等时,结果为False,表明此记录为不符合查询条件的记录。相当于!=
eg:select device_id, gender, age, university from user_profile where university != '复旦大学'
SELECT device_id, gender,age,university FROM user_profile WHERE university NOT IN ("复旦大学")
select*from user_profile where university in('北京大学','复旦大学','山东大学');
eg:解法一:select device_id,gender,age,university
from user_profile
where age is not NULL;
解法二:select device_id,gender,age,university
from user_profile
where age !='';
5.字符匹配
一般形式为:列名 [NOT ] LIKE
匹配串中可包含如下四种通配符:
_:匹配任意一个字符;
%:匹配0个或多个字符;
[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );
[^ ]:不匹配[ ]中的任意一个字符。
例.查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。
SELECT
*
FROM
学生表
WHERE
姓名
LIKE
'[张李刘]%’
6.and or and优先级高于or
7.函数查询(用于列名)
avg:计算平均数 ROUND(AVG(gpa),1) 保留一位小数点
count:计算数量
max、min:最大最小
当有count之类的聚合函数的时候只能使用having而不能使用where。
eg:计算男生人数以及平均GPA select count(gender) as male_num, round(avg(gpa), 1) as avg_gpa from user_profile where gender="male";
8.group by 分组 按列名分组
9.order by 语句用于对结果集进行排序
ORDER BY 语句默认按照升序对记录进行排序。
如果按照降序对记录进行排序,可以使用 DESC 关键字。
eg:降序排序:SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
当按两种排序时:SELECT Company, OrderNumber FROM Orders ORDER BY Company,OrderNumber