牛客SQL练习详解 02:条件查询
- 1、基础排序
- sql36 查找后排序
- sql37 查找后多列排序
- sql38 查找后降序排列
- 2、基础操作符
- sql6 查找学校时北大的学生信息
- sql7 查找年龄大于24岁的用户信息
- sql8 查找某个年龄段的用户信息
- sql9 查找chuchu
- 3、高级操作符
- sql11 高级操作符练习(1)
- sql12 高级操作符练习(2)
- sql13 Where in 和Not in
- sql14 操作符混合运用
- sql15 查看学校名称中含北京的用户
- 4、其他
叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
1、基础排序
sql36 查找后排序
题目:
现在运营想要取出用户信息表中的用户年龄,
请取出相应数据,并按照年龄升序排序。
升序:select device_id,age from user_profile order by age;
降序:select device_id,age from user_profile order by age desc;
order by用于对取出的数据进行升序排序
order by age 默认以 age 升序
order by age asc 以 age 升序
order by age desc 以 age 降序
sql37 查找后多列排序
题目:
现在运营想要取出用户信息表中的年龄和gpa数据,
并先按照gpa升序排序,再按照年龄升序排序输出,
请取出相应数据。
多个写法:
select device_id,gpa,age from user_profile ORDER BY gpa ASC, age ASC;
select device_id,gpa,age from user_profile ORDER BY gpa,age;
多列排序注意有优先级顺序,且默认都按照升序排序。
先按照 GPA 排序再按照年龄排序的意义在于:
当多个用户具有相同的 GPA 时,它们会按照年龄进行排序。
具有相同 GPA 的用户会根据他们的年龄值升序排列,
以便更好地了解具有相同 GPA 的用户之间的年龄分布情况。
sql38 查找后降序排列
题目:
现在运营想要取出用户信息表中对应的数据,
并先按照gpa、年龄降序排序输出,请取出相应数据。
select device_id, gpa, age from user_profile order by gpa desc, age desc
列的顺序决定排序的优先级,每个列可以单独制定排序的方式
2、基础操作符
sql6 查找学校时北大的学生信息
题目:
现在运营想要筛选出所有北京大学的学生进行用户调研,
请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
1、使用where 条件查询
select device_id,university from user_profile where university = "北京大学"
2、使用like 模糊查询
select device_id,university from user_profile where university like "北%"
LIKE关键字用于在WHERE子句中进行模糊匹配。
通过结合通配符(通常是百分号 % 和下划线 _),
可以实现对文本数据的模糊搜索,从而提高查询的灵活性。
LIKE关键字的通配符解释:
%:代表零个或多个字符。
例如,like 'a%'将匹配以字母"a"开头的任何字符串。
_:代表单个字符。
例如,like '_r%'将匹配第二个字符为"r"的任何字符串。
sql7 查找年龄大于24岁的用户信息
题目:
现在运营想要针对24岁以上的用户开展分析,
请你取出满足条件的设备ID、性别、年龄、学校。
select device_id, gender, age, university
from user_profile
where age>24
比较运算符:
在某个范围内(小值在前,含最值){between...and...};
不等于{<> 或 !=}
在之后列表中的值多选1 {in(...)}
like占位符 {模糊匹配(_匹配单个字符,%匹配的多个字符)常见用于数字+字母组合}
为空 {is null}
逻辑运算符:
and 或 && {并且(多个条件同时成立)}
or 或 || {或者(多个条件任意一个成立)}
not 或 !{非,不是}
sql8 查找某个年龄段的用户信息
题目:
现在运营想要针对20岁及以上且23岁及以下的用户开展分析,
请你取出满足条件的设备ID、性别、年龄。
select device_id, gender, age from user_profile
where age between 20 and 23 # between包含两端
# where age>=20 and age<=23
注意:between包含两端
A between m and n
A>=m and A<=n都可以
sql9 查找chuchu
题目:
现在运营想要查看除复旦大学以外的所有用户明细,
请你取出相应数据
select device_id, gender, age, university from user_profile
where university !='复旦大学'
# where university <> '复旦大学'
# where university not in('复旦大学')
# where university not like '复旦%'
3、高级操作符
sql11 高级操作符练习(1)
题目:
现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研,
请你取出相关数据。
select device_id, gender, age, university, gpa from user_profile
where gender='male' and gpa>3.5
where的多条件筛选:
加入 AND 逻辑符号,需要两个同时满足的行数据才会被筛选出来。
sql12 高级操作符练习(2)
题目:
现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,
请你取出相关数据(使用OR实现)
select device_id,gender,age,university,gpa
from user_profile
where university in('北京大学') || gpa >3.7
select device_id,gender,age,university,gpa
from user_profile
where university = '北京大学') or gpa >3.7
sql13 Where in 和Not in
题目:
现在运营想要找到学校为北大、复旦和山大的同学进行调研,
请你取出相关数据。
select device_id, gender, age, university, gpa from user_profile
where university in ('北京大学','复旦大学','山东大学');
select device_id,gender,age,university,gpa FROM user_profile
where university='北京大学' or university='复旦大学' or university='山东大学';
满足多项或条件的,用in比用or一个一个列举方便一点.
sql14 操作符混合运用
题目:
现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户
或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,
请你取出相应数据.
法1 union
SELECT device_id, gender, age, university,gpa from user_profile where gpa > 3.8 and university = '复旦大学'
UNION
SELECT device_id, gender, age, university,gpa from user_profile where gpa > 3.5 and university = '山东大学'
法2 or
SELECT device_id, gender, age, university,gpa
from user_profile
where (gpa > 3.8 and university = '复旦大学') or (gpa > 3.5 and university = '山东大学')
sql15 查看学校名称中含北京的用户
题目:
现在运营想查看所有大学中带有北京的用户的信息,
请你取出相应数据。
select device_id, age, university from user_profile
# where university like ('%北京%')
where university regexp '北京'
regexp 运算符用于 sql 查询中的文本模式匹配。
其语法为:where column_name regexp 'pattern',其中 pattern 是正则表达式模式。
regexp 使用特殊字符指定匹配规则,以下是 REGEXP 中常用的特殊字符:
. (点):匹配任何单个字符。
* (星号):匹配零个或多个前面的字符。
+ (加号):匹配一个或多个前面的字符。
? (问号):匹配前面的字符零次或一次。
[] (方括号):匹配方括号内的任何一个字符。
^ (脱字符):匹配字符串的开头。
$ (美元符号):匹配字符串的结尾。
4、其他
Ending!
更多课程知识学习记录随后再来吧!
就酱,嘎啦!
注:
人生在勤,不索何获。