my sql 常见函数

来源:互联网 发布:plc编程软件 编辑:程序博客网 时间:2024/06/16 06:18

注意:贴出两张表截图,依次为emp表和dep表(可用其他表,这里是为了举例子说明sql 语句用法)


--大写转化成小写

select userId,LOWER(username) from user
--截取字符
select userId,SUBSTR(username,1,2) from user
--小写转化成大写
select userId,UPPER(username) from user
--分组函数
--求平均值
select avg(sal) from emp
--最大值
select EMPNO,MAX(MGR) from emp
--group by分组查询
select deptno from emp group by  deptno
--配合使用
select deptno, avg(sal) from emp group by deptno
--整体使用
select deptno 部门编号,avg(sal) 平均工资,max(sal) 工资最高,min(sal) 工资最低,sum(sal) 总工资,count(empno) 总人数 from emp group by deptno
--having对组进行过滤
select JOB 职位,avg(sal) 平均工资,max(sal) 工资最高,min(sal) 工资最低,sum(sal) 总工资,count(empno) 总人数 from emp group by JOB having avg(sal)>2000
--order by按顺序排列
select deptno 部门编号,JOB 职位,avg(sal) 平均工资,max(sal) 工资最高,min(sal) 工资最低,sum(sal) 总工资,count(empno) 总人数 from emp group by JOB having avg(sal)>2000 order by deptno desc


--子查询,查询出来的结果是一张表
select * from emp where sal>(select avg(sal) from emp) order by sal
--这种情况需要取个别名
select * from (select * from emp) a
--子查询结合in的使用
select * from emp where empno in (select empno from emp where empno =7369 or empno=7499)


--连表查询92年写法
select e.* ,d.dname from emp e,dept d where e.deptno=d.deptno
--inner join是内连接,需要两边都有才会显示出来。on 后面加条件99年写法
select e.*,d.deptno from emp e inner join dept d on e.deptno=d.deptno
--right join只要右边有的就显示出来
select e.*,d.deptno from emp e right join dept d on e.deptno=d.deptno
--left join只要左边有的就显示出来
select e.*,d.deptno from emp e left join dept d on e.deptno=d.deptno


--分页,第一个参数表示从第几行开始,第二个参数表示要查几条
select * from emp limit 0,5