指的是最小2个以及2个以上的条件才满足要求
select * from employees where first_name="Parto"and gender="M" limit 5;
2个或者2个以上满足其中一个条件即可
select * from employees where first_name="Chirstian"or last_name="Speek" limit 5;
select * from salaries where salary>60117 limit 5;
select * from salaries where salary>=60117 limit 5;
select * from salaries where salary<60117 limit 5;
select * from salaries where salary<=60117 limit 5;
select * from salaries where salary!=60117 limit 5;
select * from salaries where salary=60117 limit 5;
任意一种即可
select * from employees where first_name in ("Georgi","Parto") limit 5;
查询范围,包含开始也包含结尾
select * from salaries where salary between 60117 and 60118 limit 5;
not in
select * from salaries where salary not in (60117,60118) limit 5;
select * from salaries where salary not between 60117 and 60118 limit 5;
正则
可以放在任意位置
select * from employees where first_name like "%gi"limit 5;
select * from employees where first_name like "Ch%an" limit 5;
select * from employees where first_name like "Ch%" limit 5;
rlike:正则模式
select * from employees where first_name rlike "^Ch" limit 5;
select * from employees where first_name rlike "an$" limit 5;
select first_name as 首名 from employees limit 5;
函数:实现某一个特定的功能
select max(score) as 最高分 from student;
select min(score)as 最低分 from student;
select avg(score)as 平均分 from student;
select sum(score)as 总分 from student;
默认排序:由小到大
select * from student order by score;
由小到大
select * from student order by score asc;
由大到小
select distinct name from student;
select distinct * from student;
聚合函数
例题1:对employees表中的gender进行分组,然后对每组进行统计
select gender,count(gender)from employees group by gender limit 10;
例题2:查询出以年龄取出平均分 过滤出平均分大于50 并且,以平均分进行倒序排序
select age,avg(score) as 平均分 from student group by age having 平均分>50 order by 平均分 desc;
理解
1、取出不同年龄段的平均分
2、在这个不同年龄段平均分的基础上过滤出>50的
3、再对这些大于50的平均分做一个倒序排序
内连接:
查询2个或者2个以上 查询他们交集(共同拥有)的数据
例题1:
查询出店铺名称 商品名称 商品类型 商品价格
select shop_name,good_name,good_type,price from shop inner join goods on shop.id=goods.shop_id;
例题2:查询出店铺名称,商品名称,商品类型,价格,还有快递名称,电话
select shop_name,good_name,good_type,price,name,phone from shop inner join goods on shop.id=goods.shop_id inner join logistic on goods.id=logistic.good_id;
例题3:查询商品目前有多少个
例题4:
1、查询shop,goods表的所有字段
2、以商品的价格作为倒序排序
select * from shop inner join goods on shop.id=goods.shop_id order by goods.price desc;
1. having只能⽤于group by(分组统计语句中)
2. where 是⽤于在初始表中筛选查询,having⽤于在where和group by 结果分组中查询
3. having ⼦句中的每⼀个元素也必须出现在select列表中
4. having语句可以使⽤聚合函数,⽽where不使⽤。