1 是山东大学的… :
SELECT 列名 FROM 表名 where 学校 =‘山东大学’;
2 最大:
max(age)
3 最小:
MIN(age)
4 年龄不为空:
SELECT age from 表名 where 年龄 is NOT NULL;
5 查询所有 :
SELECT * from 表名;
6 去重 :
DISTINCT
7 前两条数据:
SELECT 列名 FROM 表名 WHERE id =‘1’ or id=‘2’;
SELECT 列名 FROM 表名 WHERE id in(‘1’,‘2’);
SELECT 列名 FROM 表名 limit 0,2;
8 将查询后的列重新命名:
列 AS 别名 列 别名
9 年龄大于…:
age >24
10 年龄小于… :
age <24
11 同一段 :
and
12 除…以外(不为…) :
!=
not IN (‘复旦大学’)
13 不同段:
or
14 …大学:
in(‘北京大学’,‘复旦大学’,‘山东大学’);
15 …和…或…和…:
gpa>3.5 and university =‘山东大学’ or gpa>3.8 and university =‘复旦大学’
16 带有…的信息(模糊查询):
like ‘%北京%’
17 计算人数以及平均值 :
count(),avg()
18 分组计算:
group by
19 保留一位小数:
ROUND(平均值(列名),1)
20 分组过滤:
group by … having
21 升序排列:
order by
22 多表连接:
1)内连接:
SELECT …
FROM 表名
INNER JOIN 被连接表
ON 连接条件 and/where 连接条件
2)
select 列名from 表名
where 列名in(
select 列名from 表名
where 列名=‘浙江大学’
);
3)
SELECT 列名from 表名 别名a, 表名 别名b
where
a.列名= b.列名
and b.列名= ‘浙江大学’;
4)左连接
SELECT …
FROM 表名
left JOIN 被连接表
ON 连接条件 where 连接条件
5)三表连接
SELECT 列名from 表名
join 被连接表
on 连接条件
JOIN 被连接表
on 连接条件
23 结果不去重:
union/or(去重)
SELECT 列名from 表名
where 列名=‘山东大学’
union all
SELECT 列名
from 表名
where 列名=‘male’;
24
if判断
SELECT IF(列名<25 OR 列名IS NULL,‘25岁以下’,‘25岁及以上’) 别名,COUNT(列名) 别名
FROM 表名 GROUP BY 列名
联合查询
SELECT ‘25岁以下’ 别名,COUNT(列名) 别名
FROM 表名
WHERE 列名< 25 OR 列名IS NULL
UNION
SELECT ‘25岁及以上’ 别名,COUNT(列名) 别名
FROM 表名
WHERE 列名>= 25
case的写法:select
case
when age>=25 then ‘25岁及以上’
else ‘25岁以下’ end 别名,
count(*) 别名
from 表名
group by 别名
case when多值判断
select 列名,case
when age<20 then ‘20岁以下’
when age between 20 and 24 then ‘20-24岁’
when age>=25 then ‘25岁及以上’
else ‘其他’ end 别名
from 表名;