Mysql 查询语句(二)
– 条件查询
比较运算符:<, >, <=, >=, =
语法:
select ..... from 表名 where .....
-- >
--查询大于18岁的信息
select * from students where age > 18;
--<
--查询小于18岁的信息
select * from students where age < 18;
--<=
--查询小于或等于18岁的信息
select * from students where age <= 18;
-->=
--查询大于或等于18岁的信息
select * from students where age >= 18;
--=
--查询年龄等于18岁的所有学生的名字
select name from students where age = 18;
我们看看查询结果:
逻辑运算符:and, or, not
--and
--18到28之间的所有学生信息
select * from students where age>18 and age<28;
--注意:此处不能写成 select * from students where age>18 and <28;此处and两边是两个条件,是两个整体。
-- 18岁以上的女性
select * from students where age > 18 and gender = '女';
也可以写成:
select * from students where age > 18 and gender = 2;
--or
-- 18岁以上或者身高超过180(包含180)以上的所有信息
select * from students where age > 18 or height >= 180;
--not
--不在18岁以上的女性这个范围内的所有信息
select * from students where not age > 18 and gender = 2;
--注意:此处这条语句只能查询年龄大于18岁,同时性别为女性的所有信息,此处not只包含后面一个age>18这个条件,并不包括gender=2 这个条件,我们要想让两个条件都包括,加上小括号就行了,这里就关系到我们的优先级问题。我们想让优先级变大,给他加上小括号就行啦,不要去死记硬背,这个太多了,背不完。
select * from students where not (age > 18 and gender = 2);
--年龄不是小于或者等于18岁 并且是女性
select * from students where (not age <= 18) and gender = 2;
– 模糊查询:%、_、 rlike正则
– like
– % 替换一个或多个
– _ 替换一个
--查询姓名中以‘小’开始的名字
select name from students where name = '小';
该条select语句是查询出来名字为小的信息,并不满足以‘小’开始,下面我们试试模糊查询
select name from students where name like '小%';
-- 查询姓名中有‘小’所有的名字
select name from students where name like '%小%';
--查询有两个字的名字
select name from students where name like '__';
--查询有三个字的名字
select name from students where name like '___';
--查询至少有两个字的名字
select name from students where name like '__%';
-- rlike 正则
--查询以‘周’开始的姓名
select name from students where name rlike '^周.*';
--查询以‘周’开始,‘伦’结尾的姓名
select name from students where name rlike '^周.*伦$';
这些就是我们的条件查询和模糊查询的内容啦,后面我们会讲到范围查询,null, 聚合, 分组等内容!