MySql必知必会实战练习(三)数据过滤

在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结。1.whe

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结。

1. where子句操作符

  等于: = 

  不等于: != 或 <>

  小于: <

  小于等于: <=

  大于: >

  大于等于:>=

  在指定的两个值之间:BETWEEN  AND

  空值检查:is NULL

  where组合子句:AND OR IN NOT 

  例:

  select * from products where verd_id in (1001,1002);

  MySql必知必会实战练习(三)数据过滤

2. 通配符过滤

  通配符用来匹配值的一部分的特殊字符

  为在搜索子句中使用通配符,必须使用LIKE操作符,LIKE指示SQL后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较

  注意:通配符的效率特别低,不要过度使用通配符,不要在搜索模式的开始使用通配符

(1)使用百分号(%)通配符

  select * from products where proc_id like ‘ANV%’;

  MySql必知必会实战练习(三)数据过滤

(2)使用下划线(_)通配符

  下划线的用途与%一样,但下划线只能匹配单个字符

  select * from products where proc_id like ‘ANV0_’;

  MySql必知必会实战练习(三)数据过滤

3. 使用正则表达式进行搜索

  正则表达式的常用方法有很多,这里不做介绍,主要介绍下REGEXP与LIKE的区别,看下面的例子

  select proc_name from products where proc_name LIKE ‘1000’;

  MySql必知必会实战练习(三)数据过滤

  select proc_name from products where proc_name REGEXP ‘1000’;

  MySql必知必会实战练习(三)数据过滤

  通过上面会很直接的看到使用LIKE没有输出结果,因为LIKE匹配的是整个列,如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不会被返回,而REGEXP在列值内进行匹配,若出现则返回相应的行

  注意:正则表达式匹配特殊字符时必须用\\为前导,\\.表示查找.

4. 子查询

  列出订购物品TNT2的所有客户信息

  思路:从orderitems表中根据产品名(proc_id)找到订单号(order_num),再在orders表中根据订单号找到客户ID(cust_id),最后再根据客户ID找到客户信息

  (1)select order_num,proc_id from orderitems where proc_id = ‘TNT2’;

  MySql必知必会实战练习(三)数据过滤

  (2)select order_num,cust_id from orders where order_num in (20005,20007);

  MySql必知必会实战练习(三)数据过滤

  (3)select * from customers where cust_id in (10001,10004);

  MySql必知必会实战练习(三)数据过滤

  下面根据子查询的方式:

  select * from customers where cust_id in (
     select cust_id from orders where order_num in(
        select order_num from orderitems where proc_id = ‘TNT2’));

  MySql必知必会实战练习(三)数据过滤

  与上面的结果一样,对于能嵌套的子查询数量没有限制,不过再实际使用时由于性能的限制,不能嵌套太多的子查询

  方法2:

  select cust_name,cust_address from customers, orders, orderitems where
   customers.cust_id = orders.cust_id AND
   orders.order_num = orderitems.order_num AND
   orderitems.proc_id = “TNT2”;

  MySql必知必会实战练习(三)数据过滤

  注意:这里给出的代码有效并获得所需的结果,但是,使用子查询并不总是执行这种类型的数据检索的最有效的方法,最好使用联结表的方式操作,后面会介绍联结表方式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120053.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月29日 下午8:00
下一篇 2021年12月29日 下午8:00


相关推荐

  • 机器人系统设计(五)[通俗易懂]

    机器人系统设计1、机器人的定义与组成——机器人是如何组成的各部分的功能:2、机器人系统构建机器人系统构建——执行机构的实现机器人系统构建——驱动系统的实现机器人系统构建——内部传感器系统的实现机器人系统构建——控制系统的实现机器人系统构建——外部传感器系统的实现3、机器人系统构建——连接摄像头       …

    2022年4月13日
    159
  • Linux基础入门(详细版)

    Linux基础入门(详细版)一 Linux 入门概述 1 1 概述 Linux 内核最初只是由芬兰人林纳斯 托瓦兹 LinusTorvald 在赫尔辛基大学上学时出于个人爱好而编写的 Linux 是一套免费使用和自由传播的类 Unix 操作系统 是一个基于 POSIX 和 UNIX 的多用户 多任务 支持多线程和多 CPU 的操作系统 Linux 能运行主要的 UNIX 工具软件 应用程序和网络协议 它支持 32 位和 64 位硬件 Linu

    2026年3月26日
    1
  • Java安全之RMI反序列化

    Java安全之RMI反序列化

    2020年11月20日
    185
  • (ExcelVBA编程入门范例)

    (ExcelVBA编程入门范例)很喜爱VBA,喜欢使用她对Excel操作实现所需的功能,更喜欢使用VBA控制Excel以及实现结果后的那种感觉。一直都想对ExcelVBA进行系统的整理和归纳,但由于对Excel及VBA了解得不够深入,总觉得无从下手。再加上又是利用少得可怜的业余时间进行学习,时断时续,学习的主线和思路也经常因为工作或其它的事情而打断。但喜欢学习的人总会挤得出时间来的,要想掌握或者是精通一门知识和技术不能有任何借口

    2022年6月6日
    54
  • KeyPal硬件钱包[通俗易懂]

    KeyPal硬件钱包[通俗易懂]KeyPal-一款多场景、易操作、全方位保护多链数字资产的硬件钱包以下文章来源于KeyPal硬件钱包,作者KeyPal2021年8月9日,TokenPocket发布了第一款服务于区块链领域的硬件钱包产品——KeyPal。KeyPal硬件钱包是TokenPocket基于开源项目自行深度研发出的一款多链的、多重认证、多方位保护用户数字资产的硬件钱包。KeyPal具有诸多亮点,从安全性、外观表现、材质用料、智能应用和公链支持等各方面都有不错的表现,是当前市面上最具性价比的一款硬件钱包。下面就..

    2022年8月30日
    4
  • 设置ntp服务器同步时间_安卓设置ntp服务器地址

    设置ntp服务器同步时间_安卓设置ntp服务器地址有时服务器需要调整时区并调整时间,需要用到的命令:ntpdate一般Linux系统都默认安装了NTP服务,如果没有安装的话,也可以直接使用yum安装,yum安装命令为:yuminstall-yntpdate首先修改一下时区为上海时区:cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime然后选择国家授时中心的服务器地址:ntpdate210…

    2022年5月3日
    312

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号