• SQL每日一练(牛客新题库)——第3天: 条件查询


    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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    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
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    select device_id,gender,age,university
    from user_profile
    #where university <> '复旦大学';
    #where university != '复旦大学';
    where university not in ('复旦大学');
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    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' --比较
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    解题答案

    SELECT device_id, gender, age, university,gpa
    FROM user_profile
    WHERE gpa >3.5 AND gender in('male')
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    5. 如何让刷题变得更高效?

    最近很多学了基础的小伙伴问我该怎么提升编程水平?学了基础该上哪刷题?明明学了很多,做项目却不知道怎么上手,其实这就是练得太少,只注重了学,却忽视了刷题,只有不断练习才能提高和巩固编程思维和能力!
    在这里插入图片描述
    链接地址牛客网 | SQL刷题篇,废话少说速度上号!!!

  • 相关阅读:
    【算法基础】筛质数
    『网易实习』周记(二)
    图书馆座位预约系统管理/基于微信小程序的图书馆座位预约系统
    435. 无重叠区间
    【观察】从广州白云精“绣”“智”理实践,看AI赋能智慧城市升级正当时
    NoSQL之readis配置与优化(启示录)
    proto转java类时相关option配置
    Shiro-SpringBoot (二)
    【附源码】计算机毕业设计SSM三味书屋图书借阅与售卖系统
    记录一次WhatTheFuck经历
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/125898111