重拾数据库04
上期文章我提到了模糊查询 传送门.
在我们平时的查询中大多都是模糊查询,以一个值来搜寻与其相关的数据并返回
本文就具体讲一下这个 模糊查询
本质
模糊查询本质为比较运算符
运算符 | 语法 | 描述 |
---|---|---|
IS NULL | a is null | 若字段为null,则结果为真 |
IS NOT NULL | a is nut null | 如果字段不是null,则结果为真 |
BETWEEM | a between b and c | a在b和c中间,则结果为真 |
LIKE | a like b | SQL匹配,如果a匹配b,则结果为真 |
IN | a in (a1,a2,a3……) | 若a是a1,a2,a3……中的某一个值,则结果为真 |
怎么样,是不是一头雾水
实例应用
这是测试用的表
INSERT INTO `student`(`studentno`,`loginpwd`,`studentname`,`sex`,`gradeid`,`phone`,`address`,`borndate`,`email`,`identitycard`)
VALUES
(1003,'123456','张伟',0,2,'13800001234','北京朝阳','1980-1-1','text123@qq.com','123456198001011234'),
(1004,'123456','赵强',1,3,'13800002222','广东深圳','1990-1-1','text111@qq.com','123456199001011233'),
(1005,'123456','张飞',0,3,'13800001238','陕西咸阳','1980-12-1','text123@qq.com','123456198001011239'),
(1006,'123456','王志强',0,3,'13800001239','贵州遵义','1980-12-11','text123@qq.com','123456198001011241');
那么执行查找语句
SELECT studentno,studentname FROM student
结果就是
如果加上以上模糊查询的几个语句
前两个null就不赘述了,是否为空一眼就看出来了
从between讲吧
SELECT studentno,studentname FROM student
WHERE studentno BETWEEN 1004 AND 1005
结果为
筛选两个数值之间的,且包含端点值
like
这里要讲个匹配方式
%代表0个或者n个任意字符
_代表1个任意字符
比如说17_ 可以代表任何17开头的 长度为3的字符串 175 179 17a 17B 17*这些都是
%17%可以表示任何包含17的字符串
回到数据库
执行
SELECT studentno,studentname FROM student
WHERE studentname LIKE '张_'
结果为
SELECT studentno,studentname FROM student
WHERE studentname LIKE '%强%'
结果为
in
执行以下语句
SELECT studentno,studentname FROM student
WHERE studentno IN (1002,1003);
执行语句
SELECT studentno,studentname FROM student
WHERE address IN ('广东深圳','贵州遵义');
结果
以上为本次总结