MySQl数据库(十)__2018.11.15

where条件指定范围的查询:[not]between...and

#测试范围 between and
#查询年龄在18~30之间的用户
SELECT id,username,age,sex FROM user1
WHERE age BETWEEN 18 AND 30;
#应用到范围的形式

#查询薪水在10000到50000之间的用户
SELECT id,username,age,salary FROM user1
WHERE salary BETWEEN 10000 AND 50000;

#查询薪水不在10000到50000之间的用户
SELECT id,username,age,salary FROM user1
WHERE salary NOT BETWEEN 10000 AND 50000;

优质男女,月薪都很高。

指定集合:[not]IN{值...}只要出现在括号里面的值,就筛选出来。

#测试指定范围(集合)IN
#查询编号为1,3,5,7,9的用户
SELECT id,username,age FROM user1
WHERE id IN (1,3,5,7,9);

它只会查询在括号中的记录。

使用字符串型的也可以

#测试指定范围(集合)IN
SELECT id,username,age FROM user1
WHERE username IN ('king','queen','rose');

那么接下来还有两个可以作为我们的where条件,一个呢是逻辑运算符,常用的逻辑运算符包括:逻辑与和逻辑或and、or

#测试逻辑运算符
#查询性别为男并且年龄>=20的用户
SELECT id,username,age,sex FROM user1
WHERE sex='男'AND age>=20;

#测试逻辑运算符
#查询性别为男并且年龄>=20的用户
SELECT id,username,age,sex FROM user1
WHERE sex='男'AND age<=30 AND id>=5;

#要求sex='女' 并且addr='北京'
SELECT id,username,age,sex,addr FROM user1
WHERE sex='女'AND addr='北京';

#查询薪水范围在60000~10000并且性别为男 addr='北京'
SELECT id,username,age,sex,salary,addr FROM user1
WHERE salary BETWEEN 60000 AND 100000 AND sex='男'AND addr='北京';

或者or

#有任何记录满足都会查询出来
SELECT id,username,age FROM user1
WHERE id=1 OR username='queen';

where条件查询:模糊查询[not]like

#测试模糊查询
SELECT id,username,age FROM user1
WHERE username='king';

SELECT id,username,age FROM user1
WHERE username LIKE 'king';
#效果是一样的

想使用模糊查询得配上“通配符”来使用

1.%:可以代表任意长度(0、1、2...)的字符串

2._:可以代表一个任意字符

有了它们两个就可以实现简单的模糊查询了

#要求用户名中包含X三X
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%三%';

这叫查询包含谁的。

#要求查询出姓张的用户
SELECT id,username,age,sex FROM user1
WHERE username LIKE '张%';

#要求查询以风结尾的用户
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%风';

#要求查询以风结尾的用户
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%';

#要求查询用户名为三位的用户
SELECT id,username,age,sex FROM user1
WHERE username LIKE '___';
#用_起一个占位的作用就可以了

_就是这么一个占位符。

%和_可以结合起来使用

#%和_结合起来使用
SELECT id,username,age,sex FROM user1
WHERE username LIKE '张_%';

#查询包含K的用户
SELECT id,username,age,sex FROM user1 WHERE username LIKE '%k%';

在搜索的时候是不区分大小写的,当然也和我们的校验规则有关,默认是忽略大小写的

猜你喜欢

转载自blog.csdn.net/weixin_40316053/article/details/84111967