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

2023-12-05 20:36

本文主要是介绍SQL Sever 基础知识 - 数据筛选(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 四、筛选数据
    • 第1节 DISTINCT - 去除重复值
      • 1.1 SELECT DISTINCT 子句简介
      • 1.2 SELECT DISTINCT 示例
        • 1.2.1 DISTINCT 一列示例
        • 1.2.2 DISTINCT 多列示例
      • 1.2.3 DISTINCT 具有 null 值示例
      • 1.2.4 DISTINCT 与 GROUP BY 对比
    • 第2节 WHERE - 过滤查询返回的行
      • 2.1 WHERE 子句简介
      • 2.2 WHERE 子句示例
        • 2.2.1 使用简单等式查找行
        • 2.2.2 查找满足两个条件的行
        • 2.2.3 使用比较运算符查找行
        • 2.2.4 查找满足两个条件之一的行
        • 2.2.4 查找值在两个值之间的行
          • 2.2.4.1 使用between...and...关键字
          • 2.2.4.2 使用判断符
        • 2.2.5 在值列表中查找具有值的行
        • 2.2.6 查找值包含字符串的行 - 模糊查询

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

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

四、筛选数据

第1节 DISTINCT - 去除重复值

SELECT DISTINCT 子句来检索指定列列表中的唯一非重复值。

1.1 SELECT DISTINCT 子句简介

SELECT DISTINCT 子句语法:

SELECT DISTINCT <列名>
FROM <表名>

Note:
① 查询仅返回指定列中的非重复值,即从结果集中删除列中的重复值。
② 查询使用 SELECT 列表中所有指定列的值的组合来评估唯一性。
③ 将 DISTINCT 子句应用于具有NULL的列,则 DISTINCT 子句将仅保留一个NULL并消除另一个, DISTINCT 子句将所有NULL“值”视为相同的值。

1.2 SELECT DISTINCT 示例

1.2.1 DISTINCT 一列示例

查询CustomerInfo表中客户所在省份:

 select distinct Provincefrom CustomerInfoorder by Province

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

1.2.2 DISTINCT 多列示例

查询CustomerInfo表中客户所在省份和城市:

 select distinct Province,Cityfrom CustomerInfoorder by Province

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

1.2.3 DISTINCT 具有 null 值示例

1.2.4 DISTINCT 与 GROUP BY 对比

查询CustomerInfo表中客户所在省份和城市(分组查询):

 select Province,Cityfrom CustomerInfogroup by Province,Cityorder by Province,City

执行结果:
在这里插入图片描述
与前面使用DISTINCT对比结果相同,相当于以下使用 DISTINCT 运算符的查询。
DISTINCTGROUP BY 子句都通过删除重复项来减少结果集中返回的行数。但是,如果要对一个或多个列应用聚合函数,则应使用 GROUP BY 子句。

第2节 WHERE - 过滤查询返回的行

根据一个或多个条件筛选查询输出中的行。

2.1 WHERE 子句简介

使用 SELECT 语句查询一个表的数据时,会获得该表的所有行,这不一定必要,有时候可能只处理一组。要从表中获取满足一个或多个条件的行组,可使用where子句,语法如下所示:

 select <列名1>,<列名2>,...from []where <条件>

以上语法:
① 在 WHERE 子句中,指定搜索条件以筛选由 FROM 子句返回的行。 WHERE 子句仅返回导致搜索条件计算为 TRUE 的行。
② 搜索条件是逻辑表达式或多个逻辑表达式的组合。在SQL中,逻辑表达式通常称为谓词。
③ 请注意,SQL Server使用三值谓词逻辑,其中逻辑表达式的计算结果可以是 TRUEFALSEUNKNOWN 。 WHERE 子句不会返回任何导致谓词计算为 FALSEUNKNOWN 的行。

2.2 WHERE 子句示例

2.2.1 使用简单等式查找行

查询CustomerInfo表中已签收的所有顾客信息:

 select *from CustomerInfowhere Status = '已签收'

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

2.2.2 查找满足两个条件的行

查询CustomerInfo表中广东省已签收的所有顾客信息:

 select *from CustomerInfowhere Status = '已签收' and Province = '广东省'

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

2.2.3 使用比较运算符查找行

查询CustomerInfo表中已签收且年龄大于30岁的所有顾客信息:

 select *from CustomerInfowhere Status = '已签收' and Age > 30

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

2.2.4 查找满足两个条件之一的行

查询CustomerInfo表中是湖北或者北京地区的所有顾客信息:

 select *from CustomerInfowhere Province = '湖北省' or Province = '北京市'

执行结果:
在这里插入图片描述
OR 关键字:满足条件之一的任何数据都包含在结果集中

2.2.4 查找值在两个值之间的行
2.2.4.1 使用between…and…关键字

查询年龄在30到35岁之间女性用户信息:

 select *from CustomerInfowhere Age between 30 and 35 and Gender = 'Female'

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

2.2.4.2 使用判断符

查询年龄在30到35岁之间女性用户信息:

 select *from CustomerInfowhere  Age >= 30 and Age <= 35 and Gender = 'Female'

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

2.2.5 在值列表中查找具有值的行

查询在湖北、湖南和北京地区的客户信息“

 select *from CustomerInfowhere  Province in ('湖北省','湖南省','北京市')

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

2.2.6 查找值包含字符串的行 - 模糊查询

查找‘刘’姓客户的所有信息:

 select *from CustomerInfowhere  CusName like'刘%'

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

这篇关于SQL Sever 基础知识 - 数据筛选(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/459045

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置