select from语句的拓展
基础语句:select columns from tb_name;
columns:显示数据
tb_name:表名
比较运算符:等=,不等!=或<>,大于/小于等于>=,<=,小于/大于<,>,是空/非空is null,is not null
逻辑运算符:与或非-and or not
筛选条件
排序–order by:
select columns from tb_name order by col [ass/desc]
注:col–列名
ass–正序(默认)
desc–倒序
限制–limit:select columns from tb_name limit strat,count;
注:limit count–显示count组数据
limit strat,count–从strat开始显示count组数据
去重–distinct:select distinct columns from tb_name;
条件语句补充:
模糊查询:like '%/’
1,%-任意多个字符
2,-一个字符
注:_,%可前可后
eg:select * from tb where name like ‘c%’;
查询tb中name开头为c的所有数据显示
范围查询:
1,连续范围:betweeen a and b–a<=values<=b
2,间隔范围:in
a in(1,2,3)–查询显示a=1,2,3的数据
具体使用方法参考eg
聚合与分组
聚合函数
使用格式:select 聚合函数(columns) from tb_name;
常用聚合函数:
统计个数:count()
求和:sum()
平均值:avg()
最大值:max()
最小值:min()
列出字段全部值:group_concat()
分组查询
语句:group by
select 字段 from 表 group by 字段;
select 字段,count(*) from 表 group by 字段;
注:在分组情况下,只能出现分组字段和聚合字段,其他字段无意义会报错
聚合筛选
语句:having
select 字段1 from 表 group by 字段1,字段2 having 字段2>=80;
having–对输出结果做出限制
注:执行顺序:先条件再聚合函数和别名(as 起别名)后having
子查询
将一个查询结果留下用于下一次查询(select 中嵌套 select)
要求:
1,嵌套在查询内部
2,必须始终出现在圆括号内
eg:查找大于平均年龄数据
select * from student where age > (select avg(age) from student);
连接查询
内连接
语句 [inner] join … on
无条件连接
主表(第一张)的每一项都与另一张表的每一项依次组合(交叉树结构)
select * from tb1 [inner] join tb2;
条件连接
按条件来进行连接
eg:
select * from tb1 as a join tb2 as b on tb1.id=tb2.id
外连接
语句 left|right join
左外连接
left join
以左表为基准
两表连接,当连接条件不匹配时,留左表数据,右表以null填充
右外连接
right join
以右表为基准
两表连接,当连接条件不匹配时,留右表数据,左表以null填充