SQL Sever 基础知识 - 数据筛选(3)

news2024/11/17 11:38:49

SQL Sever 基础知识 - 四、数据筛选

    • 第7节 BETWEEN
      • 7.1 BETWEEN 运算符概述
      • 7.2 BETWEEN 示例
        • 7.2.1 BETWEEN 与数字示例
        • 7.2.2 BETWEEN 和日期示例
    • 第8节 LIKE
      • 8.1 LIKE运算符概述
      • 8.2 转义字符
      • 8.3 LIKE 示例
        • 8.3.1 % (百分号) 通配符示例
        • 8.3.2 _(下划线)通配符示例
        • 8.3.3 [字符列表] 通配符示例
        • 8.3.4 [character-character] 通配符示例
        • 8.3.5 [^Character List or Range] 通配符示例
        • 8.3.6 NOT LIKE 操作符示例
        • 8.3.7 LIKE 和 ESCAPE 示例
    • 第9节 别名
      • 9.1 列的别名
      • 9.2 表的别名

更多SQL Sever基础知识可查看:SQL Sever 基础知识(全)

特别说明
  本文章所用的所有数据库、数据表及其数据皆为AI随机生成,不涉及个人隐私,且仅供学习使用!

第7节 BETWEEN

查询条件是否在值范围之间

7.1 BETWEEN 运算符概述

BETWEEN 运算符是一个逻辑运算符,允许指定要查询的范围。
下面说明了 BETWEEN 运算符的语法:

column | expression BETWEEN start_expression AND end_expression

在此语法中:
① 指定要测试的列或表达式。
② 将 start_expression 和 end_expression 放在 BETWEEN 和 AND 关键字之间。 start_expression 、 end_expression 和 expression 必须具有相同的数据类型。
③ 如果要测试的表达式大于或等于 start_expression 的值且小于或等于 end_expression 的值,则 BETWEEN 运算符返回 TRUE

可以使用大于或等于(>=)和小于或等于(<=)来替换 BETWEEN 运算符,如下所示:

column | expression <= end_expression AND column | expression >= start_expression   

但是使用 BETWEEN 运算符的条件比使用比较运算符>=、<=和逻辑运算符 AND 的条件可读性更强。

要对 BETWEEN 运算符的结果求反,请使用 NOT BETWEEN 运算符,如下所示:

column | expression NOT BETWEEN start_expression AND end_expresion

如果列或表达式中的值小于 start_expression 的值且大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE 。它等价于以下条件:

column | expression < start_expression AND column | expression > end_expression

如果 BETWEENNOT BETWEEN 的任何输入是 NULL ,则结果是 UNKNOWN

7.2 BETWEEN 示例

7.2.1 BETWEEN 与数字示例

查询OrderDate表中购买数量在8~10的所有订单信息:

 select *
 from OrderDate
 where Quantity between 8 and 10
 order by Quantity

执行结果:
在这里插入图片描述

7.2.2 BETWEEN 和日期示例

查询OrderDate表中在四、五月份下单的订单信息:

 select *
 from OrderDate
 where OrderDate between '20230401' and '20230531'  ----between '2023-04-01' and '2023-05-31'
 order by OrderDate

执行结果:
在这里插入图片描述

第8节 LIKE

检查字符串是否与指定的模式匹配

8.1 LIKE运算符概述

LIKE 是一个逻辑运算符,用于确定字符串是否与指定的模式匹配。可以包括常规字符和非常规字符。 LIKE 运算符用于 SELECT 、 UPDATE 和 DELETE 语句的 WHERE 子句中,以根据模式匹配筛选行。
LIKE 运算符的语法:

column | expression LIKE pattern [ESCAPE escape_character]

要对 LIKE 运算符的结果求反,请使用 NOT 运算符,如下所示:

column | expression NOT LIKE pattern [ESCAPE escape_character]

在语法中:
Pattern 是要在列或表达式中搜索的字符序列。它可以包含以下有效的通配符:
① 通配符百分比 (%):零个或多个字符的任何字符串。
② 下划线 (_) 通配符:任意单个字符。
③ [字符列表] 通配符:指定集中的任何单个字符。
④ [字符-字符]:指定范围内的任何单个字符。
⑤ [^]:不在列表或范围内的任何单个字符。
通配符使LIKE运算符比等于 (=) 和不等 (!=) 字符串比较运算符更灵活。

8.2 转义字符

转义字符指示 LIKE 操作符将转义字符视为常规字符。转义字符没有默认值,只能计算为一个字符。如果列或表达式与指定的模式匹配,则 LIKE 运算符返回 TRUE 。

8.3 LIKE 示例

8.3.1 % (百分号) 通配符示例

1、查询CustomerInfo表中,所有刘姓顾客的信息:

 select *
 from CustomerInfo
 where CusName like '刘%'

执行结果:
在这里插入图片描述
2、查询CustomerInfo表中,所有姓名含有‘小’字顾客的信息:

 select *
 from CustomerInfo
 where CusName like '%小%'

执行结果:
在这里插入图片描述
3、查询顾客姓名以‘刚’字结尾的顾客订单信息:

 select *
 from CustomerInfo
 where CusName like '%刚'

执行结果:
在这里插入图片描述
4、查询顾客姓名以‘王’开头‘宇’结尾的顾客订单信息:

 select *
 from CustomerInfo
 where CusName like '王%宇'

执行结果:
在这里插入图片描述

8.3.2 _(下划线)通配符示例

下划线表示单个字符。查询顾客姓名第二个字是‘小’的所有顾客订单信息:

 select *
 from CustomerInfo
 where CusName like '_小%'  --  where CusName like '_小_'

执行结果:
在这里插入图片描述
通配符 '_小%'
第一个下划线字符( _ )匹配任何单个字符;
第二个字母 u 与字母u完全匹配;
第三个字符 % 匹配任何字符序列。

8.3.3 [字符列表] 通配符示例

带有字符列表的方括号,例如 [ABC] 单个字符,该字符必须是列表中指定的字符之一。
1、查询 CustomerInfo 表中客户姓名中第一个字符为‘张’或‘刘’ 的客户信息:

 select *
 from CustomerInfo
 where CusName like '[张刘]%'

执行结果:
在这里插入图片描述
2、查询 employees 表中员工 first_name 第一个字符为‘A’或‘D’ 的客户信息:

 select * 
 from employees
 where first_name like '[AD]%'
 order by first_name

执行结果:
在这里插入图片描述

8.3.4 [character-character] 通配符示例

带有字符范围的方括号,如 [A-C] 表示必须在指定范围内的单个字符。
查询employees表中,员工 first_name 以A-D开头的员工信息:

 select * 
 from employees
 where first_name like '[A-D]%'
 order by first_name

执行结果:
在这里插入图片描述

8.3.5 [^Character List or Range] 通配符示例

带插入符号(^)的方括号后跟一个范围,例如, [^A-C] 或字符列表,例如, [ABC] 表示不在指定范围或字符列表中的单个字符。
1、查询 employees 表中,员工 first_name 不以A-D开头的员工信息:

 select * 
 from employees
 where first_name like '[^A-D]%'
 order by first_name

执行结果:
在这里插入图片描述
2、查询 CustomerInfo 表中,顾客姓氏不是‘张’‘刘’‘王’‘陈’的顾客信息:

 select *
 from CustomerInfo
 where CusName like '[^张刘王陈]%'
 order by CusName

执行结果:
在这里插入图片描述

8.3.6 NOT LIKE 操作符示例

1、查询 CustomerInfo 表中,顾客姓氏不是‘张’‘刘’‘王’‘陈’的顾客信息:

 select *
 from CustomerInfo
 where CusName not like '[张刘王陈]%'
 order by CusName

执行结果:
在这里插入图片描述
2、查询 employees 表中,员工 first_name 不以A-D开头的员工信息:

 select * 
 from employees
 where first_name not like '[A-D]%'
 order by first_name

执行结果:
在这里插入图片描述

8.3.7 LIKE 和 ESCAPE 示例

ESCAPE是一个用于指定转义字符的关键字。当在SQL语句中使用LIKE操作符进行模式匹配时,我们可以使用ESCAPE来定义一个转义字符,以通过转义某些特殊字符,将其视为普通字符而不是具有特殊含义的通配符。
现有一张季度汇报表,内容如下:
在这里插入图片描述
现在需要查询汇报内容数据20%的相关内容,此时我们可以有如下查询:

 select * 
 from 销售报表
 where 汇报内容 like '%20%'

执行结果:
在这里插入图片描述
从查询结果中可以发现返回的结果并不符合我们的预期,因为在LIKE操作符中,有两个特殊字符具有通配符的含义:%(表示任意字符序列)_(表示任意单个字符),他们在使用时不会呈现出普通字符。当我们希望在LIKE操作中使用这些字符作为普通字符进行匹配,而不是通配符,就可以通过ESCAPE来指定转义字符。
改写上述代码如下:

 select * 
 from 销售报表
 where 汇报内容 like '%20\%%' ESCAPE '\'

在此查询中, ESCAPE 子句指定字符‘\’是转义字符。它指示将‘\’后的字符(即‘%’)视为文字字符串而不是字符串。注意,如果没有 ESCAPE 子句,查询将返回一个空的结果集。
执行结果:
在这里插入图片描述
Note:
ESCAPE关键字不仅可以用于LIKE操作符,还可以用于其他需要转义特殊字符的场景,如字符串中的特殊字符、正则表达式等。

第9节 别名

9.1 列的别名

使用 SELECT 语句从表中查询数据时,SQL Server使用列名作为输出的列标题。
1、查询employees表中员工的first_name和last_name:

 select first_name,last_name
 from employees
 order by first_name

执行结果:
在这里插入图片描述
如输出所示列标题分别使用了 first_name 和 last_name 列名。
2、要获取客户的全名,可以使用串联 + 运算符将名字、空格和姓氏串联起来,查询如下:

 select first_name+ ' '+last_name
 from employees
 order by first_name

执行结果:
在这里插入图片描述
因为查询的结果是组合出来的列,在原表中没有此列,所以返回结果集将全名列返回为( No column name ),这在此没有意义,在查询执行期间为列或表达式分配临时名称,需要使用列别名
3、给查询的结果列取别名:

 select first_name+ ' '+last_name as 'Name'		--as 可省略
 from employees
 order by first_name

执行结果:
在这里插入图片描述
Note:
① 使用 AS 关键字分隔列名或表达式与别名,AS 关键字是可选的;
② 别名可省略括号,但是如果别名中包含空格符,则括号不可省:如上述代码别名为 ‘Full Name’,括号不可省略,如果为‘Full_Name’ 括号可省略。
③ 为列分配别名时,可以在 ORDER BY 子句中使用列名或列别名, ORDER BY 子句是要处理的最后一个子句,因此列别名在排序时是已知的。

9.2 表的别名

一个表可以被赋予一个别名,称为关联名或范围变量。
现有员工信息employees 表和工资表salaries ,需要查询员工工号,员工姓名(全)和员工工资:

 select em.emp_no,first_name+ ' '+last_name as 'Name',sa.salary
 from employees em
 inner join salaries sa 
 on em.emp_no = sa.emp_no
 order by Name

执行结果:
在这里插入图片描述
在此查询中:
信息employees 表和工资表salaries都有一个列的名称相同 emp_no 列 ,需要使用以下语法引用该列:em.emp_no,em即employees 表的别名,表示employees 表中的emp_no列;
为表分配别名时,必须使用别名来引用表列,否则在执行时会报错。

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

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

相关文章

SAP GRID-ALV复选框+GRID事件

实现功能: 复选框\设置复选框是否可编辑\实现changed_finished事件. 一、ALV增加复选框&#xff1a; 1.1、在输出内表里增加一个SEL的字段&#xff1a; sel TYPE c, 1.2、在build_fieldcat FORM里设置checkbox属性和edit属性&#xff0c;并输出SEL字段&#xff1a;…

机器学习——logistic回归

在之前实验接触到的机器学习算法都是的目的都是对数据集进行分类&#xff0c;即预测得到的结果是数据样本所属的类别&#xff0c;预测输出结果是离散的集合&#xff0c;比如{‘是’&#xff0c;‘不是’}。这次实验学习的是回归模型&#xff0c;与分类模型不同的是&#xff0c;…

基于springboot+vue的景区民宿预约系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

xxljob入门案例与配置

1 配置执行器 在任务调度中心&#xff0c;点击进入”执行器管理”界面, 如下图: 1、此处的AppName,会在创建任务时被选择&#xff0c;每个任务必然要选择一个执行器。 2、”执行器列表” 中显示在线的执行器列表, 支持编辑删除。 以下是执行器的属性说明&#xff1a; 属性名…

postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍 该文件用于控制访问安全性&#xff0c;管理客户端对于PostgreSQL服务器的访问权限&#xff0c;内容包括&#xff1a;允许哪些用户连接到哪个数据库&#xff0c;允许哪些IP或者哪个网段的IP连接到本服务器&#xff0c;以及指定连接时使用的身份验证模…

Redis部署-哨兵模式

目录 redis sentinel相关名词 redis sentinel架构 故障转移流程 基于docker搭建redis哨兵 准备工作 搭建过程 模拟主节点宕机,观察哨兵节点的工作流程 哨兵重新选取主节点的流程 1.主观下线 2.客观下线 3.哨兵节点推举出一个leader节点 4.leader选举完毕,leader挑选…

JDK8新特性——Stream流

文章目录 一、Stream流体验二、Stream流的创建三、Stream流中间方法四、Stream流终究方法 Stream流&#xff08;也叫Stream API&#xff09;。它是从JDK8以后才有的一个新特性&#xff0c;是专业用于对集合或者数组进行便捷操作的 一、Stream流体验 需求&#xff1a;有一个Lis…

【动手学深度学习】(十)PyTorch 神经网络基础

文章目录 一、层和块1.自定义块2.顺序块3.在前向传播函数中执行代码 二、参数管理1.参数访问2.参数初始化3.参数绑定 三、自定义层1.不带参数的层2.带参数的层 四、读写文件1.加载和保存张量2.加载和保存模型参数 [相关总结]state_dict() 一、层和块 为了实现复杂神经网络块&am…

FacetWP Hierarchy Select网站内容层次结构选择插件

点击阅读FacetWP Hierarchy Select网站内容层次结构选择插件原文 FacetWP Hierarchy Select网站内容层次结构选择插件可让您基于分层分类法创建引导下拉菜单。 FacetWP Hierarchy Select网站内容层次结构选择插件功能 通过引导式下拉菜单过滤结果&#xff0c;一次一个深度级…

现在的00后,实在是太卷了......

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

[Unity数据管理]自定义菜单创建Unity内部数据表(ScriptableObject)

Unity 在开发的时候如果数据量比较大&#xff0c;或者一部分数据需要存在云端&#xff0c;那么就需要一些数据库 轻量型到大型的包括&#xff1a; 数组-内存存储读取 列表-内存存储读取 List<T> tList new List<T>(); XML-硬盘存储读取 JSON-硬盘存储读取 …

时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行LSTM模型进行时间序列建模&#xff08;专门为了时间序列领域新人编写的架构&#xff0c;简单且不同于市面上大家用GPT写的代码&#xff09;&#xff0c;包括结果可视化、支持单元预测、多元预测、模型拟合效果检测…

Tecplot绘制涡结构(Q准则)

文章目录 目的步骤1步骤2步骤3步骤4步骤5步骤6结果 目的 Tecplot绘制涡结构(Q准则判别)并用温度进行染色 Q准则计算公式 步骤1 步骤2 步骤3 步骤4 步骤5 步骤6 结果

网络初识:局域网广域网网络通信基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、局域网LAN是什么&#xff1f;二、广域网是什么&#xff1a;三. IP地址四.端口号五.认识协议5.1五元组 总结 前言 一、局域网LAN是什么&#xff1f; 局域网…

k8s安装学习环境

目录 环境准备 配置hosts 关闭防火墙 关闭交换分区 调整swappiness参数 关闭setlinux Ipv4转发 时钟同步 安装Docker 配置Yum源 安装 配置 启动 日志 安装k8s 配置Yum源 Master节点 安装 初始化 配置kubectl 部署CNI网络插件 Node节点 检查 环境准备 准…

Leetcode1038. 从二叉搜索树到更大和树(每日一题)

目录 ⚽题目&#xff1a; &#x1f3d0;题目分析&#xff1a; &#x1f3c0;题目解答&#xff1a; &#x1f94e;代码如下&#xff1a; ⚽题目&#xff1a; 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值…

五、分支和循环

目录 1. if 语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套 if 1.5 悬空 else 问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符&#xff1a; &&&#xff0c;|| &#xff0c;&#xff01; 4.1 逻辑取反运算符 &#xff01; 4.2 与运算符 &&…

家政服务预约小程序系统的开发;

家政服务预约小程序系统的开发&#xff0c;既是对传统加盟服务模式的创新&#xff0c;也是家政商家企业营销推广服务的升级。它推动整个家政服务行业实现线上线下深度融合&#xff0c;提升用户消费体验&#xff0c;实现了雇主、服务提供者、家政企业商家三者之间的无缝衔接&…

新媒体营销教学模拟实训平台解决方案

一、背景与目标 随着新媒体的快速发展&#xff0c;营销人才需求旺盛&#xff0c;而具备新媒体营销能力的人才供给却相对不足。为了解决这一矛盾&#xff0c;本方案旨在构建一个新媒体营销教学模拟实训平台&#xff0c;帮助学生掌握新媒体营销的实际操作技能&#xff0c;提高就…

JSP项目中集成mybatis查询数据库表 将数据库数据渲染到jsp界面中

首先 我们需要两个JAR包 这里 我们在项目 pom.xml 文件dependencies标签下加入代码如下 导入mybatis与mysql-connector-java <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version&g…