当前位置: 首页 > news >正文

MySQL | 数据查询语言DQL数据过滤语法及实例

数据过滤

是由where子句来实现的.

语法:

select list
from tabs
where search_conditions;

左右拉动查看完整代码

▲ 原理

where 条件
谓词 --> true 表示满足条件 返回数据行-->false 表示不满足条件 丢弃数据行-->unknown 表示不满足条件 丢弃数据行
where 多个条件
复合谓词: 基本谓词通过逻辑运算符连接起来的式子
逻辑运算符: and or not
复合谓词经过逻辑运算 --> true false unknown

左右拉动查看完整代码

基本谓词

比较谓词

比较两个值表达式返回的值的大小关系是否成立.

where ve1 VS ve2
ve1 or ve2: 值表达式(value expression),凡是能返回某个值的式子
# 1 --> 1 常量
# 1 + 2 --> 3 常量表达式
# ecs_goods.market_price --> 每一行返回一个值 列引用
# market_price * 1.2 --> 每一行返回一个计算后的值 计算列VS: 关系运算符
> < >= <= = !=(or<>)
#比较谓词的否定是通过关系运算符取反来实现的
<= >= < > != =

左右拉动查看完整代码

▲ 数据库查找数据的方式

a.全表扫描

从表中的第一行按照顺序一直查找到最后一行.

b.索引扫描

按照表建立起来的索引查找数据.​​​​​​​

#找出市场价格大于1000的商品信息
SELECT goods_id, goods_name, market_price
FROM ecs_goods
WHERE market_price > 1000;

左右拉动查看完整代码

○ 范围谓词

判断值表达式返回的值是否在一个区间范围内.​​​​​​​

where ve between ve1 and ve2
where ve not between ve1 and ve2between ve1 and ve2: 定义一个闭区间范围[ve1,ve2]
# ve >= ve1 and ve <= ve2
    #找出市场价格在1400到2400之间的商品信息
    SELECT goods_id, goods_name, market_price
    FROM ecs_goods
    WHERE market_price BETWEEN 1400 AND 2400;

    左右拉动查看完整代码

    ○ 集合成员谓词

    判断值表达式返回的值是否是一个指定集合中的一个元素.​​​​​​​

    where ve in (ve1,ve2,...,ven)
    where ve not in (ve1,ve2,...ven)(ve1,ve2,...,ven): 定义了一个n个元素的集合(元素无序,唯一)
    #ve = ve1 or ve = ve2 or ... or ve = ven
      #找出市场价格是50,100,150,200的商品信息
      SELECT goods_id, goods_name, market_price
      FROM ecs_goods
      WHERE market_price IN (50,100,150,200);

      左右拉动查看完整代码

      ○ 模式匹配谓词

      判断值表达式返回的值是否与一个指定的字符串相匹配​​​​​​​

      where ve like 'str'
      where ve not like 'str'
      str: 指定要匹配的字符串str = 必须匹配的字符 + 可以忽略的字符
      普通字符 通配符
      #通配符: 具有特殊含义的字符,可以描述或匹配多个字符,in MySQL
      % 匹配任意字符串(包含空串) name like '李%'
      _(下划线) 匹配任意单个字符 name like '李_' 姓李单名
        #找出商品名称包含诺基亚的商品信息
        SELECT goods_id, goods_name, market_price
        FROM ecs_goods
        WHERE goods_name LIKE '%诺基亚%';
          #找出商品名称只有4个字符的产品信息
          SELECT goods_id, goods_name, market_price
          FROM ecs_goods
          WHERE goods_name LIKE '____';

          左右拉动查看完整代码

          ○ 空值谓词

          判断值表达式返回的值是否是一个空值.​​​​​​​

          where ve is null
          where ve is not null

          左右拉动查看完整代码

          ▲ 空值

          表示没有或未知.在数据库中用null表示.

          不等同于0​​​​​​​

          #找出没有设置密码提示问题用户信息
          SELECT *
          FROM ecs_users
          WHERE passwd_question IS NULL;

          左右拉动查看完整代码

          ▲ not关键字

          当谓词的条件难以描述时,可以写出其相反的条件,再使用not关键字进行否定.​​​​​​​

          #找出设置了密码提示问题用户信息
          SELECT *
          FROM ecs_users
          WHERE passwd_question IS NOT NULL;
            #课堂练习
            1.找出库存告急的商品信息
            2.找出商品类型为2,3,4,5,6的所有商品信息
            3.找出商品关键字中包含"直板"的商品信息
            4.找出市场价格不在[1000,2000]区间的商品信息
            5.找出email是163.com的用户信息

            左右拉动查看完整代码

            逻辑运算符​​​​​​​

            ● and

            逻辑"与", 双目运算符​​​​​​​

            P1 and P2 --> true
            true true当前仅当所有的谓词返回true时,复合谓词结果才为true.
            这意味着所有的条件要同时成立.
              #商品类型为9中市场价格大于500的产品信息
              SELECT goods_id, goods_name, goods_type, market_price
              FROM ecs_goods
              WHERE goods_type = 9 AND market_price > 500;

              左右拉动查看完整代码

              ● or

              逻辑"或", 双目运算符​​​​​​​

              P1 or P2 --> true
              \true/只要谓词之一返回true时,复合谓词结果则为true.
              这意味着只要多个条件中的某一个成立即可.
                #商品类型为9,或者市场价格大于500的产品信息
                SELECT goods_id, goods_name, goods_type, market_price
                FROM ecs_goods
                WHERE goods_type = 9 OR market_price > 500;

                左右拉动查看完整代码

                ● not

                逻辑"非", 单目运算符​​​​​​​

                not P
                true --> false
                false --> true
                unknown --> unknown
                  #市场价格不大于500的商品信息
                  SELECT goods_id, goods_name, goods_type, market_price
                  FROM ecs_goods
                  WHERE NOT market_price > 500;

                  左右拉动查看完整代码

                  ● 混合运算​​​​​​​

                  #运算符优先级:() > not > and > ornot P1 or P2 and P3
                  s1. not P1 --> r1
                  s2. P2 and P3 --> r2
                  s3. r1 or r2 --> r(not P1 or P2) and P3
                  s1. not P1 --> r1
                  s2. r1 or P2 --> r2
                  s3. r2 and P3 --> r

                  左右拉动查看完整代码

                  运算规则

                  ▲ unknown的由来​​​​​​​

                  where ve1 VS ve2
                  ve1 or ve2 返回的值为null,则比较谓词的结果为unknown
                    #找出没有设置密码提示问题用户信息
                    SELECT *
                    FROM ecs_users
                    WHERE passwd_question = NULL; # error, use is null

                    左右拉动查看完整代码

                    ▲ 真值表​​​​​​​

                    true --> T
                    false --> F
                    unknown --> U

                    左右拉动查看完整代码

                    图片

                    http://www.dtcms.com/a/554500.html

                    相关文章:

                  • 网站设计中的用户体验成品视频直播软件推荐哪个好一点非周马加
                  • C/C++ 中 void* 深度解析:从概念到实战
                  • 提升网站访问速度百度免费发布信息
                  • OpenSIP3.4 路由脚本之我见
                  • php网站开发进程施工企业工作环境
                  • 第1讲:为什么是Flutter?跨平台开发的现状与未来
                  • 怎样做网站策划教育培训机构十大排名
                  • 成都怎样制作公司网站产品营销网站建设
                  • 百度网站链接提交入口做淘宝网店需要多少钱
                  • 推荐几本学习计算机语言的书
                  • 保定网站建设报价wordpress菜单分级
                  • 贵阳网站设计企业百度直播
                  • MPK(Mirage Persistent Kernel)源码笔记(4)--- 转译系统
                  • html 手机网站wordpress云盘视频播放
                  • 白宫网站 wordpress企石镇仿做网站
                  • Chatbox 安装 for Windows
                  • Ubuntu OpenCV C++ 获取MYNT EYE S1030-IR摄像头图像
                  • 网站的域名怎么看合肥高端网站建设设计公司
                  • 个人网站制作多少钱个人网站推广
                  • 使用中继扩展蓝牙传输距离的方法
                  • 【Python】-- 趣味代码 - 猜数字游戏
                  • 网站备案怎么那么慢内蒙古生产建设兵团四师三十四团知青网站
                  • 阜阳市住房和城乡建设局网站中国工商业联合会
                  • 淘宝客网站免费做网站建设的费用结构包括
                  • html5网站后台建设银行鞍山网站
                  • DepthAI ROS Release 3.0
                  • 自己创造网站平台seo关键词排名网络公司
                  • 自己做网络棋牌网站流程wordpress 卢松松
                  • 透明快捷键或命令管理器
                  • 一个CTO的一天:详细设计的作用