模糊查询 |
关键字:like
通配符:%:表示0到多个字符
_:表示单个字符
eg:查询员工名字第二个字符为L的员工信息。
select * from emp where name like '_L%';
练习1:查询姓名中第三个字符为W的员工信息。
select * from emp where name like '__W%';
条件中可以包含表达式或函数 |
练习1:查询员工编号大于1002的员工信息。
select * from emp where id>1002;
练习2:查询员工名字长度大于3的员工信息。
select * from emp where length(name)>3;
排序 |
也是查询语句中的一个子句。
位置:一定要放在查询语句的最后。
用法:ordey by colName。
升序:asc,默认为升序,可不写。
降序:desc。
排序时,null为最大值,理解为无穷大。提示:Mysql和sql中null为最小值。
按照两个字段排序时,逻辑是先按照第一个字段排序,当值一致时,在按照第二个字段排序。
练习1:按照对name升序查询出emp表中员工的信息。
select * from emp order by name;
练习2:查询emp表中的信息,按照id降序,工资升序。
select * from emp order by id desc ,sal;
去重 |
关键字:distinct
用途:去掉重复的数据,显示一次。
用法:此关键字必须紧跟着select关键字。
练习1:查询emp表中员工的名字,按照升序显示。
select distinct name from emp ordey by name;
聚合函数 |
也叫多行函数,分组函数,忽略null值。
所要的数据表中无法直接体现,需要经过计算。
max()/min()
max():查看每一组中的最大值
min():查看每一组中的最小值
sum():求每一组数据的总和
avg():求每一组数据的平均值
count():统计每一组数据的记录数,通配符*可以代替任意字段。
group by 子句:
作用:通过字段进行分组,字段值一样的为一组。
用法:group by colName
having 子句:
作用:分组之后进行过滤
位置:group by 子句后。
练习1:求emp表中的最高与最低工资。
select max(sal),min(sal) from emp;
练习2:求emp表中总工资
select sum(sal) from emp;
练习3:求emp表中平均月工资。
select avg(sal) from emp;
练习4:求emp表中总的记录数。
select count(*) from emp;
练习5:对emp中的名字进行分组
select name from emp group by name;
练习6:对emp表中的名字进行分组,并查找名字为Mike的信息
select * from emp group by name having name='Mike';