码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SQL刷题之单表查询


    文章目录

      • 基础练习
        • 查询所有列
        • 查询多列
        • 查询结果去重
        • 查询结果限制返回行数
        • 将查询后的列重新命名
        • 查找学校是北大的学生信息
        • 查找后排序
        • 查找后多列排序
        • 查找后降序排列
        • 查找年龄大于24岁的用户信息
        • 查找某个年龄段的用户信息
        • 查找除复旦大学的用户信息
        • 用where过滤空值练习
        • 高级操作符练习(1)
        • 高级操作符练习(2)
        • Where in 和Not in
        • 操作符混合运用
        • 查看学校名称中含北京的用户
      • 高级查询
        • 查找GPA最高值
        • 计算男生人数以及平均GPA
        • 分组计算练习题
        • 分组过滤练习题
        • 分组排序练习题
      • 恭喜

    基础练习

    查询所有列

    在这里插入图片描述
    sql:

    select 
        *
    from
        user_profile;
    
    • 1
    • 2
    • 3
    • 4

    查询多列

    在这里插入图片描述

    sql:

    select
      device_id,
      gender,
      age,
      university
    from
      user_profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查询结果去重

    在这里插入图片描述
    sql:

    select
      distinct university
    from
      user_profile
    
    • 1
    • 2
    • 3
    • 4

    方法二:

    SELECT university 
    FROM user_profile
    GROUP BY university 
    
    • 1
    • 2
    • 3

    查询结果限制返回行数

    在这里插入图片描述
    sql:

    select
      device_id
    from
      user_profile
    limit
      2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    将查询后的列重新命名

    在这里插入图片描述
    sql:

    select
      device_id as 'user_infos_example'
    from
      user_profile
    where
      id between 1 and 2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查找学校是北大的学生信息

    在这里插入图片描述
    sql:

    select
      device_id,
      university
    from
      user_profile
    where
      university = '北京大学'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    方法二:

    select
      device_id,
      university
    from
      user_profile
    where
      university = '北京大学'
    and device_id = user_profile.device_id; # 索引覆盖
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查找后排序

    在这里插入图片描述

    sql:

    select
      device_id,
      age
    from
      user_profile
    order by
      age
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查找后多列排序

    在这里插入图片描述
    sql:

    select
      device_id,
      gpa,
      age
    from
      user_profile
    order by
      gpa,
      age
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查找后降序排列

    在这里插入图片描述
    sql:

    select
      device_id,
      gpa,
      age
    from
      user_profile
    order by
      gpa desc,
      age desc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查找年龄大于24岁的用户信息

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university
    from
      user_profile
    where
      age > 24
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查找某个年龄段的用户信息

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age
    from
      user_profile
    where
      age between 20 and 23
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查找除复旦大学的用户信息

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university
    from
      user_profile
    where
      university not in ('复旦大学')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    或者:

    select
      device_id,
      gender,
      age,
      university
    from
      user_profile
    where
      university != ('复旦大学')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    用where过滤空值练习

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university
    from
      user_profile
    where
      age is NOT NULL
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    高级操作符练习(1)

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university,
      gpa
    from
      user_profile
    where
      gpa > 3.5
      and gender = 'male'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    高级操作符练习(2)

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university,
      gpa
    from
      user_profile
    where
      university = '北京大学'
      or gpa > 3.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Where in 和Not in

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university,
      gpa
    from
      user_profile
    where
      university in ('北京大学', '复旦大学', '山东大学')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    操作符混合运用

    在这里插入图片描述
    sql:

    select
      device_id,
      gender,
      age,
      university,
      gpa
    from
      user_profile
    where
      gpa > 3.5
      and university = '山东大学'
      or gpa > 3.8
      and university = '复旦大学'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    查看学校名称中含北京的用户

    在这里插入图片描述
    sql:

    select
      device_id,
      age,
      university
    from
      user_profile
    where
      university like '北京%'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    高级查询

    查找GPA最高值

    在这里插入图片描述
    sql:

    select
      gpa
    from
      user_profile
    where
      university = '复旦大学'
    order by
      gpa desc # 降序
    limit
      1 # 限制输出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    或者:

    select
      max(gpa)
    from
      user_profile
    where
      university = '复旦大学'
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    计算男生人数以及平均GPA

    在这里插入图片描述
    sql:

    select
      count(gender) as male_num,
      avg(gpa) as avg_gpa
    from
      user_profile
    where
      gender = 'male'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    分组计算练习题

    在这里插入图片描述
    在这里插入图片描述
    sql:

    select
      gender,
      university,
      count(device_id) as user_num,
      avg(active_days_within_30) as avg_active_days,
      avg(question_cnt) as avg_question_cnt
    from
      user_profile
    group by
      gender,
      university
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    分组过滤练习题

    题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。

    sql:

    #聚合函数结果作为筛选条件时,不能用where,而是用having语法,配合重命名即可;
    select
        university,
        avg(question_cnt) as avg_question_cnt,
        avg(answer_cnt) as avg_answer_cnt
    from user_profile
    group by university
    having avg_question_cnt<5 or avg_answer_cnt<20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    分组排序练习题

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    sql:

    select
      university,
      avg(question_cnt) as avg_question_cnt
    from
      user_profile
    group by
      university
    order by
      avg_question_cnt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    恭喜

    单表查询你已经基本的知识会了,恭喜入门!本篇题目都很简单,如果平均每个题你能在一分钟内完成就算基本掌握了。

  • 相关阅读:
    Kali 基础命令(一)
    ctfshow 七夕杯(复现)
    Linux- 由映射文件I/O问题引出的SIGBUS & 空洞文件(Sparse File)
    2024年仁爱学院专升本招生专业对应范围专业目录更新的通知
    计算机毕业设计(附源码)python装修服务分析系统
    Vue3.0-如此简单的setup
    华为od机考题目-带空白字符的字符串匹配
    【Mysql】mysql | sql优化 | 优化using filesort
    数据库设计流程---以案例熟悉
    [附源码]计算机毕业设计企业售后服务管理系统Springboot程序
  • 原文地址:https://blog.csdn.net/weixin_46211269/article/details/126669368
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号