• 数据库-MySQL之数据库必知必会1-9章


    检索数据

    1.检索不重复的行
    从 Customers 表中检索所有的 ID
    在这里插入图片描述

    select DISTINCT cust_id
    from Customers;
    
    • 1
    • 2

    DISTINCT表示去掉重复的
    2.限制结果-分页
    SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

    排序检索数据

    1.常规检索
    使用ORDER BY子句对输出进行排序,默认是从小到大(A-Z)(顺序) 使用DESC表示倒序
    在这里插入图片描述

    select cust_name
    from Customers 
    ORDER BY cust_name DESC;
    
    • 1
    • 2
    • 3

    2.按多个列排序且不同列有不同顺序
    在需要逆序的列后面加DESC即可
    在这里插入图片描述

    select cust_id,order_num
    from Orders
    ORDER BY cust_id,order_date DESC;
    
    • 1
    • 2
    • 3

    3. 找最值
    使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。

    过滤数据

    1.WHERE子句
    在这里插入图片描述

    select prod_id,prod_name
    from Products
    where prod_price=9.49
    
    • 1
    • 2
    • 3

    1.WHERE操作符
    在这里插入图片描述
    示例:
    编写 SQL 语句,从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9 美元或更高的产品。

    select prod_id,prod_name
    from Products
    where prod_price>=9
    
    • 1
    • 2
    • 3

    BETWEEN的用法
    在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后

    select prod_name,prod_price
    from Products 
    where prod_price BETWEEN 3 AND 6
    ORDER BY prod_price
    
    • 1
    • 2
    • 3
    • 4

    2.组合WHERE子句
    AND操作符:有多个条件
    OR操作符:只满足一个条件
    AND与OR组合操作符
    示例:
    【问题】编写SQL 语句,查找所有订购了数量至少100 个的 BR01、BR02 或BR03 的订单。你需要返回 OrderItems 表的订单号(order_num)、产品 ID(prod_id)和数量(quantity),并按产品 ID 和数量进行过滤

    select order_num,prod_id,quantity
    from OrderItems
    where quantity>=100 && (prod_id= 'BR01' OR prod_id='BR02' OR prod_id='BR03')
    
    • 1
    • 2
    • 3

    IN操作符
    IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配
    在这里插入图片描述
    此SELECT语句检索供应商1002和1003制造的所有产品。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中
    NOT操作符
    WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
    在这里插入图片描述
    上述代码列出除1002和1003之外的所有供应商制造的产品

    用通配符进行过滤

    %

    通配符(wildcard) 用来匹配值的一部分的特殊字符。
    最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。为了找出所有以词jet起头的产品,可使用以下SELECT
    语句
    在这里插入图片描述
    通配符可在搜索模式中任意位置使用,并且可以使用多个通配符。除了一个或多个字符外,%还能匹配0个字符。%
    代表搜索模式中给定位置的0个、1个或多个字符。
    注:虽然似乎%通配符可以匹配任何东西,但有一个例外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配
    用值NULL作为产品名的行。

    使用两个LIKE

    select prod_name,prod_desc
    from Products
    where prod_desc LIKE '%toy%' AND prod_desc LIKE '%carrots%'
    
    • 1
    • 2
    • 3

    _

    另一个有用的通配符是下划线(_)。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符

    用正则表达式进行搜索

    基本字符匹配

    REGEXP
    在这里插入图片描述
    在这里插入图片描述
    LIKE只匹配整列值为1000 不会找出内容中有1000的但 REGEXP会

    进行OR匹配

    在这里插入图片描述

    匹配几个字符之一

    如果你只想匹配特定的字符,可通过指定一组用**[和]**括起来的字符来完成
    在这里插入图片描述

    匹配范围

    在这里插入图片描述

    匹配特殊字符

    如果要找出包含.字符的值,怎样搜索
    在这里插入图片描述

  • 相关阅读:
    非对称密码体制、单钥密码体制、私钥密码体制是一个概念对吗?
    【目标检测】Faster R-CNN的几点理解
    你真的理解“感受野”了吗?
    DataLoader的使用
    2024五一杯数学建模B题思路分析
    牛客网反转链表
    Nginx访问日志按天拆分
    DRM系列(5)之vblank事件驱动
    packihx: aborting after 3 lines.
    一致性hash算法原理及实践
  • 原文地址:https://blog.csdn.net/weixin_44925329/article/details/134192507