目录
SQL6--查找学校是北大的学生信息
描述
示例1
答案
SQL7--查找年龄大于24岁的用户信息
描述
示例1
答案
SQL8-查找某个年龄段的用户信息
描述
示例1
答案
其他方法:
SQL9--查找除复旦大学的学生信息
描述
示例1
答案
其他方法:
SQL10--用where过滤空值练习
描述
示例1
答案
其他方法:
SQL11--高级操作符练习(1)
描述
示例1
答案
其他方法:
SQL12--高级操作符练习(2)
描述
示例1
答案
SQL13--Where in 和 Not in
描述
示例1
答案
其他方法:
SQL14--操作符混合运用
描述
示例1
答案
其他方法:
SQL15--查看学校名称中含北京的用户
描述
示例1
答案
其他方法:
SQL36--查找后排序
描述
示例1
答案
SQL37--查找后多列排序
描述
示例1
答案
SQL38--查找后降序排列
描述
示例1
答案
SQL6--查找学校是北大的学生信息
描述
题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
示例:user_profile
id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male 复旦大学 Shanghai 3 6543 female 20 北京大学 Beijing 4 2315 female 23 浙江大学 ZheJiang 5 5432 male 25 山东大学 Shandong 根据示例,你的查询应返回以下结果:
device_id university 2138 北京大学 6543 北京大学
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai'); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang'); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
2138|北京大学
6543|北京大学
答案
select device_id,university from user_profile where university="北京大学";
SQL7--查找年龄大于24岁的用户信息
描述
题目:现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。
用户信息表:user_profile
id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male 复旦大学 Shanghai 3 6543 female 20 北京大学 Beijing 4 2315 female 23 浙江大学 ZheJiang 5 5432 male 25 山东大学 Shandong 根据输入,你的 查询应返回以下结果:
device_id gender age university 5432 male 25 山东大学
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai'); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang'); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
5432|male|25|山东大学
答案
select device_id,gender,age,university from user_profile where age>24;
SQL8-查找某个年龄段的用户信息
描述
题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。
用户信息表:user_profile
id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male 复旦大学 Shanghai 3 6543 female 20 北京大学 Beijing 4 2315 female 23 浙江大学 ZheJiang 5 5432 male 25 山东大学 Shandong 根据输入,你的查询应返回以下结果:
device_id gender age 2138 male 21 6543 female 20 2315 female 23
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai'); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang'); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
2138|male|21
6543|female|20
2315|female|23
答案
select device_id,gender,age from user_profile where age between 20 and 23;
其他方法:
SELECT device_id,gender,age FROM user_profile where age>=20 and age<=23
SELECT device_id,gender,age FROM user_profile WHERE age IN (20,21,22,23)
SQL9--查找除复旦大学的学生信息
描述
题目:现在运营想要查看除复旦大学以外的所有用户明细包括的字段有 device_id、gender、age、university,请你取出相应数据
示例:user_profile
id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male 复旦大学 Shanghai 3 6543 female 20 北京大学 Beijing 4 2315 female 23 浙江大学 ZheJiang 5 5432 male 25 山东大学 Shandong 根据输入,你的查询应返回以下结果:
device_id gender age university 2138 male 21 北京大学 6543 female 20 北京大学 2315 female 23 浙江大学 5432 male 25 山东大学
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai'); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang'); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
2138|male|21|北京大学
6543|female|20|北京大学
2315|female|23|浙江大学
5432|male|25|山东大学
答案
select device_id,gender,age,university from user_profile where university!="复旦大学";
其他方法:
select device_id,gender,age,university from user_profile where university <> "复旦大学" # where university != '复旦大学' # where not university = '复旦大学' # where university not in('复旦大学') # where university not like '复旦大学'
SQL10--用where过滤空值练习
描述
题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。
示例:user_profile
id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male 复旦大学 Shanghai 3 6543 female 20 北京大学 Beijing 4 2315 female 23 浙江大学 ZheJiang 5 5432 male 25 山东大学 Shandong 根据输入,你的 查询应返回以下结果:
device_id gender age university 2138 male 21 北京大学 6543 female 20 北京大学 2315 female 23 浙江大学 5432 male 25 山东大学
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai'); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing'); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang'); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
2138|male|21|北京大学
6543|female|20|北京大学
2315|female|23|浙江大学
5432|male|25|山东大学
答案
select device_id,gender,age,university from user_profile where age is not null;
其他方法:
过滤空值的三种方法:
(1) Where 列名 is not null
(2) Where 列名 != 'null'
(3) Where 列名 <> 'null'
SQL11--高级操作符练习(1)
描述
题目:现在运营想要找到male且GPA在3.5以上(不包括3.5)的用户进行调研,请你取出相关数据。
示例:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 复旦大学 4.0 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 根据输入,你的查询应返回以下结果:
device_id gender age university gpa 3214 male 复旦大学 4.0 5432 male 25 山东大学 3.8
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);
输出:
3214|male|None|复旦大学|4.0
5432|male|25|山东大学|3.8
答案
select device_id,gender,age,university,gpa from user_profile where gender="male" and gpa > 3.5;
其他方法:
SELECT device_id, gender, age, university,gpa FROM user_profile WHERE gpa >3.5 AND gender in('male')
SQL12--高级操作符练习(2)
描述
题目:现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,请你取出相关数据(使用OR实现)
示例:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 复旦大学 4.0 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 根据输入,你的查询应返回以下结果:
device_id gender age university gpa 2138 male 21 北京大学 3.4 3214 male 复旦大学 4.0 6543 female 20 北京大学 3.2 5432 male 25 山东大学 3.8
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);
输出:
2138|male|21|北京大学|3.4
3214|male|None|复旦大学|4.0
6543|female|20|北京大学|3.2
5432|male|25|山东大学|3.8
答案
select device_id,gender,age,university,gpa from user_profile where university="北京大学" or gpa>3.7;
SQL13--Where in 和 Not in
描述
题目:现在运营想要找到学校为北大、复旦和山大的同学进行调研,请你取出相关数据。
示例:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 复旦大学 4.0 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 根据输入,你的查询应返回以下结果:
device_id gender age university gpa 2138 male 21 北京大学 3.4 3214 male 复旦大学 4.0 6543 female 20 北京大学 3.2 5432 male 25 山东大学 3.8
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);
复制输出:
2138|male|21|北京大学|3.4
3214|male|None|复旦大学|4.0
6543|female|20|北京大学|3.2
5432|male|25|山东大学|3.8
答案
select device_id,gender,age,university,gpa from user_profile where university in ("北京大学","复旦大学","山东大学");
其他方法:
select device_id,gender,age,university,gpa from user_profile where find_in_set(university,'北京大学,复旦大学,山东大学');
select device_id,gender,age,university,gpa from user_profile WHERE university="北京大学" or university="复旦大学" or university="山东大学"
# NOT IN select device_id ,gender, age, university, gpa from user_profile where university NOT IN ("浙江大学");
SQL14--操作符混合运用
描述
题目:现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户 或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,请你取出相应数据,取出的数据按照device_id升序排列
示例:user_profile
id device_id gender age university province gpa 1 2138 male 21 北京大学 BeiJing 3.4 2 3214 male NULL 复旦大学 Shanghai 4 3 6543 female 20 北京大学 BeiJing 3.2 4 2315 female 23 浙江大学 ZheJiang 3.6 5 5432 male 25 山东大学 Shandong 3.8 根据输入,你的查询应返回以下结果:(该题对于小数点后面的0不需要计算与统计,后台系统会统一输出小数点后面1位)
device_id gender age university gpa 3214 male NULL 复旦大学 4 5432 male 25 山东大学 3.8
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `province` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);
输出:
3214|male|None|复旦大学|4.0
5432|male|25|山东大学|3.8
答案
select device_id,gender,age,university,gpa from user_profile where gpa>3.5 and university="山东大学" union select device_id,gender,age,university,gpa from user_profile where gpa>3.8 and university="复旦大学" order by device_id asc;
其他方法:
SELECT device_id, gender, age, university,gpa from user_profile where (gpa > 3.8 and university = '复旦大学') or (gpa > 3.5 and university = '山东大学')
SQL15--查看学校名称中含北京的用户
描述
题目:现在运营想查看所有大学中带有"北京"的用户的信息(device_id,age,university),请你取出相应数据。
示例:用户信息表:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 复旦大学 4.0 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 6 2131 male 28 北京师范大学 3.3 根据示例,你的查询应返回如下结果:
device_id age university 2138 21 北京大学 6543 20 北京大学 2131 28 北京师范大学
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8); INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);
输出:
2138|21|北京大学
6543|20|北京大学
2131|28|北京师范大学
答案
select device_id,age,university from user_profile where university like'%北京%';
其他方法:
select device_id,age,university from user_profile where university regexp '北京';
select device_id,age,university from user_profile where university like '北京';
select device_id,age,university from user_profile where locate('北京',university);
select device_id,age,university from user_profile where instr(university,'北京');
select device_id,age,university from user_profile where substr(university,1,2) = '北京';
SQL36--查找后排序
描述
题目:现在运营想要取出用户信息表中的用户设备ID和用户年龄,请取出相应数据,并按照年龄升序排序。
示例:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 23 复旦大学 4 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 6 2131 male 28 北京师范大学 3.3 根据示例,你的查询应返回以下结果:
device_id age 6543 20 2138 21 3214 23 2315 23 5432 25 2131 28
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4); INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8); INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);
输出:
6543|20
2138|21
3214|23
2315|23
5432|25
2131|28
答案
select device_id,age from user_profile order by age asc;
SQL37--查找后多列排序
描述
题目:现在运营想要取出用户信息表中的device_id、年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出,请取出相应数据。
用户信息表:user_profile
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 23 复旦大学 4 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 6 2131 male 28 北京师范大学 3.3 你的查询应返回以下结果:
device_id gpa age 6534 3.2 20 2131 3.3 28 2138 3.4 21 2315 3.6 23 5432 3.8 25 3214 4 23
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4); INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8); INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);
输出:
6543|3.200|20
2131|3.300|28
2138|3.400|21
2315|3.600|23
5432|3.800|25
3214|4.000|23
答案
select device_id,gpa,age from user_profile order by gpa asc,age asc;
SQL38--查找后降序排列
描述
题目:现在运营想要取出用户信息表中对应的数据,并先按照gpa降序排列、gpa相同的按照年龄降序排序输出,请取出相应数据。
示例 user_profile:
id device_id gender age university gpa 1 2138 male 21 北京大学 3.4 2 3214 male 23 复旦大学 4 3 6543 female 20 北京大学 3.2 4 2315 female 23 浙江大学 3.6 5 5432 male 25 山东大学 3.8 6 2131 male 28 北京师范大学 3.3 根据示例,你的查询应返回以下结果:
device_id gpa age 3214 4 23 5432 3.8 25 2315 3.6 23 2138 3.4 21 2131 3.3 28 6543 3.2 20
示例1
输入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4); INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8); INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);
输出:
3214|4.0|23
5432|3.8|25
2315|3.6|23
2138|3.4|21
2131|3.3|28
6543|3.2|20
答案
select device_id,gpa,age from user_profile order by gpa desc,age desc;
升序排序asc可以省略,降序排列不能省略;