基础DQL(数据查询)——条件查询

简介: 基础DQL(数据查询)——条件查询

一、前言


本文将讲解数据查询中的条件查询


二、语法


1.格式


SELECT 字段列表 FROM 表名 WHERE 条件列表


2.举例


这里我们新建一个表


StudentInformation


Name Country Age
张三 上海 19
李四 上海 21
王五 重庆 21
老六 北京 20
老七 南京 21


然后输入T-SQL语句


SELECT * FROM StudentInformation WHERE Age > 20;


该语句的意思是:查询并列举表中年龄大于20的所有列


e465833aca604e5cb210f94bd7c13ce2.png


三、条件


这里列举一些SQL语句中独有的,比较运算符中的大于、小于、大于等于、小于等于、等于以及逻辑运算符中的或与非就不再列举了,与编程语言中一致


比较运算符 功能
<> 或者 != 不等于
BETWEEN …AND… 在某范围内
IN(…) 在in后列表中的值多选一
LIKE 占位符 模糊匹配(_匹配单个字符,%匹配多个字符)
IS NULL 为NULL值


四、空值判读查询


1.格式


查询并返回某字段为空的行


SELECT 字段列表 FROM 表名 WHERE 字段列表 IS NULL;


查询并返回某字段不为空的行


SELECT 字段列表 FROM 表名 WHERE 字段列表 IS  NOT NULL;


2.举例


查询并列举表中年龄为空所有列


SELECT * FROM StudentInformation WHERE Age IS NULL;


查询并列举表中年龄不为空所有列


SELECT * FROM StudentInformation WHERE Age IS NOT NULL;


五、范围查询


1.格式


可以有很多种语句来查询两个值之间的范围

  • 使用逻辑运算符


SELECT 字段列表 FROM 表名 WHERE 字段列表 >= N && 字段列表 <= M


  • 使用连接符and


SELECT 字段列表 FROM 表名 WHERE 字段列表 >= N and 字段列表 <= M;


  • 使用between···and语句( BETWEEN 后写较小值,AND 后写较大值)


SELECT 字段列表 FROM 表名 WHERE 字段列表 BETWEEN N and M;


2.举例


SELECT * FROM StudentInformation WHERE Age > 18 && Age < 21;
SELECT * FROM StudentInformation WHERE Age > 18 and Age < 21;
SELECT * FROM StudentInformation WHERE Age BETWEEN 18 and 21;


3.其它情况(某范围外/多条件满足其一)


  • 某个范围之外的行


SELECT 字段列表 FROM 表名 WHERE 字段列表 NOT BETWEEN N and M;


  • 当查询很多条件满足其中一个的时候(查询年龄为19/23/24/29的客户)可以用IN


SELECT 字段列表 FROM 表名 WHERE 字段列表 IN(条件1,条件2...);


例如:


SELECT * FROM StudentInformation WHERE Age IN(19,23,24,29);


六、模糊查询


1.概述


一般格式为:


SELECT 字段列表 FROM 表名 WHERE 字段列表 LIKE 表达式


2.通配符总览


通配符 含义
% 代表任意多个字符
_ 代表单个任意字符
[] 代表方框内列出的任意字符
[^] 代表没有在方框内列出的任意字符



3.通配符%


一个%代表任意个字符,如果要查询以a开头的单词的话可以用··· LIKE 'a%'


我们还是用一张表格来实际讲解一下


Student


Name Country Age
张三 上海 19
李四 上海 21
王某某 重庆 21
老六 北京 20
老七 南京 21
赵某某 北京 23
老某某 天津 19


SELECT * FROM Student WHERE Name LIKE '老%'


该语句的意思是:查找以老开头的名字,不论名字是几个字的都要列出


72349a4def334e219c6af1e877b67e6a.png


4.通配符_


一个_代表一个字符,如果要查询三个字母组成的单词的话可以用··· LIKE '___'

我们还是用一张表格来实际讲解一下

还是用上面的表格,我们查询一下名字为三个字的


SELECT * FROM Student WHERE Name LIKE '___';


2a18d37dbfe445488d037b3ae98d3e1c.png


5.通配符[]


可以理解为查询所有[]中列出的字段


SELECT * FROM Student WHERE Name LIKE '[老]%';


即列出所有以老字开头的人名字的行


3cd5bd3f5af340758dba580ff36a1077.png


6.通配符[^]


可以理解为查询去掉所有[^]中 ^后列出所有字段的行


SELECT * FROM Student WHERE Name LIKE '[^老]%';


这条语句的意思是去掉所有以老字开头的名字后列出所有字段的行


8a52302423d54641b67ee793b8587fd5.png


七、结语


下一篇文章我们会讲述有关于聚合函数有关内容

相关文章
|
数据采集 存储 监控
京东商品价格和评论的数据采集监控系统
对于一个商品来说,其价格在其生命周期内几乎不可能一成不变,很多消费者需要在商品价格低于心理预期时及时收到通知,然后有概率产生购买行为,虽然这种功能可能已经在京东或者淘宝上实现了,但是对于消费者来说,知道整个周期内的具体价格变化情况也很重要,这就是商品价格监控的一个意义所在。
|
存储 数据可视化 计算机视觉
树莓派计算机视觉编程:1~5
树莓派计算机视觉编程:1~5
362 0
|
7月前
|
Java 开发者 UED
Java 输入处理的常见错误
本文深入探讨了Java中输入处理的常见错误与认知偏差,重点分析了`Scanner`类的使用误区。例如,`nextInt()`后紧跟`nextLine()`会因残留换行符导致输入跳过,需额外调用`nextLine()`清理缓冲区;`nextLine()`始终返回字符串,需手动转换数据类型;处理多数字输入时,应结合`split()`与`Integer.parseInt()`方法。通过剖析这些问题,帮助开发者理解`Scanner`的工作机制,提升输入处理代码的健壮性与准确性。
215 3
|
数据采集 网络协议 测试技术
使用Go Validator在Go应用中有效验证数据
使用Go Validator在Go应用中有效验证数据
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer到底解决什么问题?
本文希望围绕“Transformer到底是解决什么问题的”这个角度,阐述NLP发展以来遇到的关键问题和解法,通过这些问题引出Transformer实现原理,帮助初学者理解。
Transformer到底解决什么问题?
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
576 3
快速上手|HTTP 接口功能自动化测试
|
弹性计算 安全 Linux
阿里云ECS Linux系统漏洞修复详细教程
阿里云ECS Linux系统漏洞修复详细教程
|
机器学习/深度学习 自动驾驶 PyTorch
“深度学习遇上自动驾驶:图像识别如何成为智能驾驶的‘超强大脑’?一场技术革命,带你领略未来出行的奇迹!”
随着科技的进步,自动驾驶成为汽车行业热点。图像识别技术,尤其是深度学习中的卷积神经网络(CNN),在自动驾驶系统中扮演了关键角色,负责从摄像头捕捉的图像中提取车辆、行人等信息。其应用涵盖目标检测、语义分割及行为预测等方面,为系统决策提供依据。尽管已取得显著进展,但面对复杂环境和极端天气等挑战,仍需不断研究优化。
287 0
|
前端开发 PHP 开发工具
CTFshow 信息搜集篇 web1-web20
CTFshow 信息搜集篇 web1-web20
224 0