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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 故宫平面图

    故宫平面图2011年去故宫自己拍的。这几天听了《百家讲坛:大故宫》节目,是阎崇年教授倾情奉献的,教授讲的真好。我边听,边参考这个平面图,对教授讲的内容印象更深刻了。以后有机会在去一次故宫,第一次去就是逛了逛,对于故宫宫殿什么都不知道。…

    2022年5月25日
  • P2P技术应用

    P2P技术应用P2P技术应用P2P,即对等连接(peertopeer)是指两个主机在通信时并不区分哪一个是服务请求放还是服务提供方。两个主机都运行了对等连接软件(P2P软件,例如我们平时用的百度云盘、微博网盘、还有死去的360网盘),它们就可以进行平等的、对等的连接通信。这是双方都可以对等的下载对方已经存储在硬盘上中的共享文档。因此这种工作方式也成为P2P文件共享。一、P2P的工作方式概述

    2022年6月19日
  • opengl和directx渲染有什么区别(directx怎么打开)

    原文地址:http://tieba.baidu.com/p/2018728460?see_lz=1OpenGL只是图形函数库。 DirectX包含图形,声音,输入,网络等模块。 单就图形而论,DirectX的图形库性能不如OpenGL OpenGL稳定,可跨平台使用。但OpenGL多需要显卡支持. ———————————-…

    2022年4月13日
  • JAVA reference_Java instanceof

    JAVA reference_Java instanceof本文介绍对象的强、软、弱和虚引用的概念、应用。1.对象的强、软、弱和虚引用  在JDK1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。

    2022年9月8日
  • kafka是什么?主要用在什么场景

    kafka是什么?主要用在什么场景1、kafka是什么?Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。2、产生背景Kafka是一个消息系统,用作LinkedIn的活动流(ActivityStream)和运营数据处理管道(Pipeline)的基础。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页…

    2022年10月13日
  • keil_lic.exe注册机使用

    keil_lic.exe注册机使用第一步:以管理员身份运行keil5第二步:打开File中的LicenseManagement第三步:复制CID第四步:选择对应的Target为ARM,粘贴CID,复制生成的注册码第五步:将注册码粘贴到这,就ok了百度云网盘:链接:https://pan.baidu.com/s/1OqQmbpIQvqtHv2TFAp7a_Q提取码:l3v6希望能帮到各位朋友…

    2022年6月10日

发表回复

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

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