文章目录
- 1. 查找某个年龄段的用户信息
- 2. 查找除复旦大学的用户信息
- 3. 用where过滤空值练习
- 4. 高级操作符练习(1)
- 5. 如何让刷题变得更高效?
1. 查找某个年龄段的用户信息 题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。
用户信息表:user_profile
文章图片
建表语句:
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');
解题答案:
SELECT device_id,gender,age from user_profile where age>=20 and age<=23
-- 或者:
SELECT device_id,gender,age from user_profile where age between 20 and 23
文章图片
2. 查找除复旦大学的用户信息 题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据
文章图片
建表语句:
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');
解题答案:
select device_id,gender,age,university
from user_profile
#where university <> '复旦大学';
#where university != '复旦大学';
where university not in ('复旦大学');
文章图片
3. 用where过滤空值练习 题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。
文章图片
建表语句:
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');
解题答案:
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 <>'null' --正则
SELECT device_id,gender,age,university FROM user_profile where age !='null' --比较
文章图片
4. 高级操作符练习(1) 题目:现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研,请你取出相关数据。
文章图片
建表语句:
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);
解题答案:
SELECT device_id, gender, age, university,gpa
FROM user_profile
WHERE gpa >3.5 AND gender in('male')
文章图片
5. 如何让刷题变得更高效?
【SQL每日一练|SQL每日一练(牛客新题库)——第3天( 条件查询)】最近很多学了基础的小伙伴问我该怎么提升编程水平?学了基础该上哪刷题?明明学了很多,做项目却不知道怎么上手,其实这就是练得太少,只注重了学,却忽视了刷题,只有不断练习才能提高和巩固编程思维和能力!
文章图片
链接地址:牛客网 | SQL刷题篇,废话少说速度上号!!!
推荐阅读
- SpringSecurity|springSecurity基础(二)连接数据库的登录
- SQL学习笔记,(参考《SQL入门经典》第5版)
- Navicat|Navicat 被投毒了 | 调查结果来了
- Java|MyBatis-Plus联表查询(Mybatis-Plus-Join)
- Oracle|Oracle主键自增设置
- 数据库|网易游戏基于 Flink 的流式 ETL 建设
- 数据库|Oracle查看表空间及使用情况
- 数据仓库|基于Hive数据仓库的标签画像实战
- “数据库”指南|养成写sql的一些好习惯(MySQL)