• 【第2天】SQL快速入门-条件查询(SQL 小虚竹)


    回城传送–》《32天SQL筑基》

    零、前言

    今天是学习 SQL 打卡的第 2 天,每天我会提供一篇文章供群成员阅读( 不需要订阅付钱 )。

    希望大家先自己思考,如果实在没有想法,再看下面的解题思路,自己再实现一遍。在小虚竹JAVA社区 中对应的 【打卡贴】打卡,今天的任务就算完成了,养成每天学习打卡的好习惯。

    ​ 虚竹哥会组织大家一起学习同一篇文章,所以有什么问题都可以在群里问,群里的小伙伴可以迅速地帮到你,一个人可以走得很快,一群人可以走得很远,有一起学习交流的战友,是多么幸运的事情。

    ​ 我的学习策略很简单,题海策略+ 费曼学习法。如果能把这些题都认认真真自己实现一遍,那意味着 SQL 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。

    今天的学习内容是:条件查询

    一、练习题目

    练习题可直接点击去线上完成,题目是来自牛客的题库。题目质量很高,重点是:免费!免费!免费!还可线上刷题,一个字香~
    题库包含入门,进阶,和大厂SQL面试真题,这也是虚竹哥后面会带大家刷SQL题的方向。
    建议大家自己先实现练习题,再看下虚竹哥的解题思路,会更有效果噢~
    官网传送门–》
    在这里插入图片描述

    二、SQL思路

    基础排序:SQL36 查找后排序

    在这里插入图片描述

    解法

    1、第一种解法:要按用户的年龄升序排序,要用到关键词:order by
    默认是升序

    select  device_id,age 
    from user_profile
    order by age
    
    • 1
    • 2
    • 3

    2、第二种解法:
    要按用户的年龄升序排序,要用到关键词:order by asc | desc

    asc代表升序
    desc代表降序

    select  device_id,age 
    from user_profile
    order by age asc
    
    • 1
    • 2
    • 3

    基础排序:SQL37 查找后多列排序

    在这里插入图片描述

    解法

    要求:按照gpa升序排序,再按照年龄升序排序输出
    1、第一种解法:要用到关键词:order by
    多个字段用“ , ”隔开,默认是升序

     select device_id,gpa,age
     from user_profile
     order by gpa,age;
    
    • 1
    • 2
    • 3

    2、第二种解法:要用到关键词:order by asc | desc
    多个字段用“ , ”隔开,

    asc代表升序
    desc代表降序

    select device_id,gpa,age
    from user_profile
    order by gpa asc,age asc;
    
    • 1
    • 2
    • 3

    基础操作符:SQL6 查找学校是北大的学生信息

    在这里插入图片描述

    解法

    第一种解法:在where 条件后,添加条件,university字段的值等于 北京大学

    select device_id,university from user_profile where university='北京大学';
    
    • 1

    第一种解法:在where 条件后,添加条件,使用 like 关键字进行匹配。

    select device_id,university from user_profile where university like '北京大学';
    
    • 1

    基础操作符:SQL9 查找除复旦大学的用户信息

    在这里插入图片描述

    解法

    第一种解法:在where 条件后,添加条件,使用 != 不等于的条件
    注:这个只能添加一个值

    select device_id,gender,age,university
    from user_profile
    where university !='复旦大学';
    
    • 1
    • 2
    • 3

    第二种解法:在where 条件后,添加条件,使用 not in 的条件
    注:这个可以添加多个值,像这样

    not in(‘A’,‘B’,‘C’)

    select device_id,gender,age,university
    from user_profile
    where university not in('复旦大学');
    
    • 1
    • 2
    • 3

    第三种解法:在where 条件后,添加条件,使用 not like 的条件

    select device_id,gender,age,university
    from user_profile
    where university not like '复旦大学'
    
    • 1
    • 2
    • 3

    第四种解法:在where 条件后,添加条件,使用 not like 的条件

    select device_id,gender,age,university
    from user_profile
    where university not like '复旦大学'
    
    • 1
    • 2
    • 3

    第五种解法:在where 条件后,添加条件,使用 <> 的条件
    注: sql中有两种方式表示不等于,一种是"<>“(不含引号),另一种是”!="(不含引号),用法是一样的

    select device_id,gender,age,university
    from user_profile
    where  university <> '复旦大学'
    
    • 1
    • 2
    • 3

    高级操作符:SQL13 Where in 和Not in

    在这里插入图片描述

    解法

    使用in 条件,可添加多个值,符合in里的值,会被搜索出来

    select device_id,gender,age,university,gpa
    from user_profile
    where university in('北京大学','复旦大学','山东大学');
    
    • 1
    • 2
    • 3

    高级操作符:SQL14 操作符混合运用

    在这里插入图片描述

    解法

    这题包含了多个条件的混用:

    • gpa在3.5以上(不包括3.5)的山东大学用户,这是一个大条件
    • gpa在3.8以上(不包括3.8)的复旦大学同学,这也是一个大条件
    • 多个大条件的话,可以用括号包起来
    • 中间有要求用或,这里要用关键字:OR
    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
  • 相关阅读:
    Web3D虚拟人捏脸
    GTest从入门到入门
    ​LeetCode解法汇总2864. 最大二进制奇数
    【尚硅谷React】——React全家桶笔记
    C++——虚函数、虚析构函数、纯虚函数、抽象类
    ubunut搭建aarch64 cuda交叉编译环境记录
    Ubuntu 2204 搭建 nextcloud 个人网盘
    常见的业务分析方法
    【c++刷题Day2】专题1背包T4
    Pointnet++学习
  • 原文地址:https://blog.csdn.net/shi_hong_fei_hei/article/details/125940272