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

本专栏收录了数据库的知识点,而基础DQL系列文章将对每种查询都单独写一篇文章,提供给有需要的小伙伴参考,本专栏地址可以戳下面链接查看

🎈 数据库知识点总结(持续更新中):【数据库知识点

🔑 数据库相关练习题(持续更新中):【数据库练习题

🔥 一个提供给Java学习者的专栏:【拼图小游戏(Java)

一、前言

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

二、语法

1.格式

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

2.举例

这里我们新建一个表
StudentInformation

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

然后输入T-SQL语句

SELECT * FROM StudentInformation WHERE Age > 20;

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

结果如下
在这里插入图片描述

三、条件

这里列举一些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

NameCountryAge
张三上海19
李四上海21
王某某重庆21
老六北京20
老七南京21
赵某某北京23
老某某天津19
SELECT * FROM Student WHERE Name LIKE '老%'

该语句的意思是:查找以老开头的名字,不论名字是几个字的都要列出
在这里插入图片描述

4.通配符_

一个_代表一个字符,如果要查询三个字母组成的单词的话可以用··· LIKE '___'
我们还是用一张表格来实际讲解一下
还是用上面的表格,我们查询一下名字为三个字的

SELECT * FROM Student WHERE Name LIKE '___';

在这里插入图片描述

5.通配符[]

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

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

即列出所有以老字开头的人名字的行
在这里插入图片描述

6.通配符[^]

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

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

这条语句的意思是去掉所有以老字开头的名字后列出所有字段的行
在这里插入图片描述

七、结语

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

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值