SQL查询语句(四)模糊查询

news2024/12/25 0:46:25

       前文介绍的查询语句,无论是利用常规的数学运算符,还是IN,BETWEEN和EXISTS等范围查询关键字,本质上都属于精确查询的范围,也就是说,我们在条件中写明了完全限定死的条件。而有些场景,我们的条件并不是很明确,例如我们想要查找姓张的所有记录,又或者我们想要查找名字中@qq.com结尾的邮箱。对于这种查询需求,就需要用到SQL为我们提供的模糊查询的功能了。

目录

模糊查询

通配符

LIKE关键字

模糊查询使用建议


模糊查询

  • 通配符

        在讲模糊查询之前,我们需要先知道一个概念,那就是通配符所谓的模糊查询,其实就是指的条件模糊,就拿上面的例子来说:我们想查找姓张的所有记录,这个条件中,我们只要求名字的第一个字是张,至于找出来的记录中,张后面跟的是什么字,跟几个字,我们都不知道,这就是我们条件模糊的地方。

        通配符的作用就是,代替我们条件中不明确的地方。这样讲可能有点抽象,我们来用具体的例子来介绍SQL语句中用到的两个通配符:

  • 百分号(%)通配符:用来表示任意字符任意次数,举个例子:张%,它可以表示“张三”,“张四”,“张吗喽”等张姓任何一个名字(也可以表示单独一个字:“张”)。就是说只要是张开头,后面无论什么字,几个字(包括0个)都可以匹配。
  • 下划线(_)通配符:用来表示任意一个字符(可以叠加使用)比如:张_,它可以表示“张三”,“张四”,但它不可以是“张吗喽”。因为一个下划线(_)它能且只能表示一个字符,而“张吗喽”的张后面跟了两个字。

        下面我们来看看,在SQL语句中怎么使用通配符来实现我们模糊查询的目的。

  • LIKE关键字

        SQL语句中用于模糊查询的关键字是LIKE关键字,语法如下所示:

SELECT [column1,column2,***]
FROM [table]
WHERE [column] LIKE [表达式];

SELECT * FROM student
WHERE name LIKE '张%';

        上述SQL语句的作用就是:从student表中,找出名字张开头的所有记录。 

        同样,如果我们只想找出名字以“吗喽”结尾的,我们就可以这样写:

SELECT * FROM student
WHERE name LIKE '%吗喽';

         当然,如果我们不想找“欧阳吗喽”、“私密吗喽”,只想找“张吗喽”、“李吗喽”或者“熊吗喽”这种“吗喽”,我们就可以这样写:

SELECT * FROM student
WHERE name LIKE '_吗喽';

        以上就是SQL中模糊查询的语法。 

模糊查询使用建议

        如果我们需要用到SQL中的模糊查询功能,有以下几点需要注意:

  1. 不要过度使用通配符。模糊查询功能是有代价的,通常情况下使用通配符进行查询要比精确查找花费更多的资源和时间。因此如果能够利用其它操作符达到目的,尽量不适用模糊查询。
  2. 在一定需要使用通配符情况下,尽量避免左模糊查询。因为左模糊查询是模糊查询中速度最慢,效率最低的。所谓的左模糊查询,就是指将通配符放在表达式的最左边,比如我们上面例子中的 '_吗喽','%吗喽' 这些都属于左模糊,应该尽量避免。(这涉及到了更加深层次的概念:索引。后面介绍SQL优化的文章中我们会介绍)
  3. 一定要注意通配符放的位置,如果位置放错了可能不会返回你想要的数据。
熊吗喽

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1655411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、第二版十四讲课本源码下载1. 安装git工具 二、Pangolin下载和安装1. 源码下载2. Pangolin的安装(1) 安装依赖项(2) 源码编译安装(2) 测试是否安装成功 二、…

PHPStudy 访问网页 403 Forbidden禁止访问

涉及靶场 upload-labd sqli-labs pikachu dvwa 以及所有部署在phpstudy中的靶场 注意:一定要安装解压软件 很多同学解压靶场代码以后访问报错的原因是:电脑上没有解压软件。 这个时候压缩包看起来就是黄色公文包的样子,右键只有“全部提取…

基于C语言中的类型转换,C++标准创造出了更加可视化的类型转换

目录 前言 一、 C语言中的类型转换 二、为什么C需要四种类型转换 三、C中新增的四种强制类型转换操作符以及它们的应用场景 1.static_cast 2.reinterpret_cast 3.const_cast 4.dynamic_cast 前言 在C语言中,如果赋值运算符左右两侧的类型不同,或者…

渗透之sql注入实战2(二次注入)

目录 平台地址: 开始: 方法1: 方法二 找提示 这里存在一个文件包含(file)。 爆源码 index.php源码 confirm.php源码: search.php源码: change.php源码: delete.php源码&…

【论文浅尝】Large Language Models for Generative Information Extraction: A Survey

本文对生成式IE的LLM进行了全面的探索。使用两种分类法对现有的代表性方法进行分类: (1)众多IE子任务的分类法,旨在对可以使用llm单独或统一提取的不同类型的信息进行分类; (2)学习范式分类法,对利用llm生成IE的各种新方法进行分类。 Preliminaries o…

学习Uni-app开发小程序Day3

经过五一长假,回过头在去看学习的东西,发现仍然是一筹莫展的,看来,学习是不能松懈的,得,自己在把以前的从头复习一遍,加深印象。今天在继续听课,但是出现一个问题,是黑码…

实践指南:如何将SpringBoot项目无缝部署到Tomcat服务器

序言 SpringBoot 是一个用来简化 Spring 应用初始搭建以及开发过程的框架,我们可以通过内置的 Tomcat 容器来轻松地运行我们的应用。但在生产环境中,我们可能需要将应用部署到独立的 Tomcat 服务器上。本文给大家介绍 SpringBoot 项目部署到独立 Tomcat…

Springboot+Vue项目-基于Java+MySQL的个人云盘管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

连接docker中的MySQL出现2058错误

出错场景:在虚拟机中用docker技术下载最新版本的MySQL,在本地电脑上连接发现出现2058错误。 解决方法: 按照以下步骤 1. 2. ALTER USER root% IDENTIFIED WITH mysql_native_password BY 自己MySQL的密码; 3.成功

如何查看公网IP开放端口?

在计算机网络中,公网IP是指能够直接访问互联网的IP地址,而开放端口则是指外部网络可以访问的服务端口。查看公网IP开放端口可以帮助我们了解当前网络环境中哪些服务可以被外部网络访问,对于网络安全和远程连接非常重要。 天联组网 天联组网是…

延迟加载过多对性能的影响

延迟加载是一种将资源下载操作推迟到需要时再下载的技术,可以节省流量并减少关键资源的网络争用。它于2019年成为 Web 标准,今天大多数主流浏览器支持图片的 loading"lazy"。 听起来不错,但是否存在延迟加载过多的情况?…

Sarcasm detection论文解析 |使用 BERT 进行中间任务迁移学习的刺检测

论文地址 论文地址:https://www.mdpi.com/2227-7390/10/5/844#/ github:edosavini/TransferBertSarcasm (github.com) 论文首页 笔记框架 使用 BERT 进行中间任务迁移学习的讽刺检测 📅出版年份:2022 📖出版期刊:Mathematics &…

您可以使用WordPress创建的19种网站类型

当人们决定为什么他们应该使用WordPress时,我们经常会被问到“WordPress可以做[空白]吗?答案大多是肯定的。在本文中,我们将向您展示您可以使用WordPress创建的19种不同类型的网站,而无需学习任何编程技巧。 目录 隐藏 1 开始使用…

什么是Facebook付费广告营销?

Facebook作为全球最大的社交平台之一,成为了跨境卖家不可或缺的营销阵地。它不仅拥有庞大的用户基数,还提供了丰富的广告工具和社群互动功能,让商家能够精准触达目标市场,提升品牌影响力。云衔科技通过Facebook付费广告营销的专业…

开源免费的发票识别OCR应用:Invoice

Invoice:轻松识别,发票电子化扫描烦恼消- 精选真开源,释放新价值。 概览 Invoice 是github社区上一个采用开源许可协议发布的增值税发票光学字符识别(OCR)解决方案项目。该项目不仅集成了预训练的高级模型&#xff0c…

ansible批量运维管理

Ansible是一种自动化运维工具,基于Python开发,主要用于自动化IT任务,如配置管理、应用程序部署、软件升级和系统管理等。它集合了众多运维工具(如puppet、cfengine、chef、func、fabric)的优点,实现了批量系…

CopyClip for Mac - 高效复制粘贴,轻松管理剪贴板

CopyClip for Mac,一款专为Mac用户打造的剪贴板管理工具,让你在复制粘贴的日常任务中,享受到前所未有的高效与便捷。 它常驻在菜单栏中,时刻准备为你服务。一旦你复制了内容,CopyClip就会自动将其保存至历史记录中&…

软件杯 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…

为软件教学文档增加实践能力

为了更方便软件教学,我们在凌鲨(OpenLinkSaas)上增加了公共资源引用的功能。 目前可以被引用的公共资源: 微应用常用软件公共知识库Docker模板 引用公共资源 引用微应用 目前微应用包含了主流数据库,终端等工具,可以方便的进行各种相关实…

词袋法TFIDF

Tf-idf⽂本特征提取 TF-IDF的主要思想是:如果某个词或短语在⼀篇⽂章中出现的概率⾼,并且在其他⽂章中很少出现,则认为此词或者短语具有很好的类别区分能⼒,适合⽤来分类。TF-IDF作⽤:⽤以评估⼀字词对于⼀个⽂件集或…