您的位置:首页 > 数据库

my sql 常见函数

2017-09-07 10:21 127 查看
注意:贴出两张表截图,依次为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: