ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MySQL基础教程——查询操作(下)

MySQL基础教程——查询操作(下) 查询操作 下二、内置函数1日期函数2字符串函数3数学函数4其它函数三、复合查询1自连接2子查询1、单行子查询2、多行子查询3、多列子查询4、在from子句中使用子查询5、合并查询结语书接上回我们来继续介绍MySQL的查询操作。二、内置函数在继续学习MySQL的函数之前我们需要了解一些基本的MySQL内置函数。1日期函数2字符串函数3数学函数4其它函数函数名称描述user()查询当前用户md5(str)对一个字符串进行md5摘要摘要后得到一个32位字符串database()显示当前正在使用的数据库password()MySQL数据库使用该函数对用户加密ifnull(val1, val2)如果val1为null返回val2否则返回val1的值三、复合查询1自连接自连接是指在同一张表连接查询。实现方式与案例# 子查询方法 select empno,ename from emp where emp.empno(select mgr from emp where enameFORD);# 多表查询方法 elect leader.empno,leader.ename from emp leader, emp worker where leader.empno worker.mgr and worker.enameFORD;2子查询子查询是指嵌入在其他sql语句中的select语句也叫嵌套查询。1、单行子查询select * from EMP WHERE deptno (select deptno from EMP where enamesmith);2、多行子查询在这其中将会使用到一些关键字。in 关键字# 查询和10号部门的工作岗位相同的雇员的名字岗位工资部门号但是不包含10自己的 select ename,job,sal,deptno from emp where job in (select distinct job from emp where deptno10) and deptno10;all 关键字# 显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号 select ename, sal, deptno from EMP where sal all(select sal from EMP where deptno30);any关键字# 显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号包含自己部门的员工 select ename, sal, deptno from EMP where sal any(select sal from EMP where deptno30);3、多列子查询单行子查询是指子查询只返回单列单行数据多行子查询是指返回单列多行数据都是针对单列而言的而多列子查询则是指查询返回多个列数据的子查询语句。# 查询和SMITH的部门和岗位完全相同的所有雇员不含SMITH本人 select ename from EMP where (deptno, job)(select deptno, job from EMP where enameSMITH) and ename SMITH;4、在from子句中使用子查询# 显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资 # 获取各个部门的平均工资将其看作临时表 select ename, deptno, sal, format(asal,2) from EMP, (select avg(sal) asal, deptno dt from EMP group by deptno) tmp where EMP.sal tmp.asal and EMP.deptnotmp.dt;5、合并查询为了合并多个select的执行结果可以使用集合操作符 unionunion all。union# 将工资大于2500或职位是MANAGER的人找出来 select ename, sal, job from EMP where sal2500 union select ename, sal, job from EMP where jobMANAGER;--去掉了重复记录union all# 将工资大于25000或职位是MANAGER的人找出来 select ename, sal, job from EMP where sal2500 union all select ename, sal, job from EMP where jobMANAGER;结语以上就是我们关于MySQL的基本查询操作内容啦。如果喜欢我的内容请点赞、收藏加关注多多支持我这个编程小白啊以及欢迎各位在评论区讨论交流并指出我的不足谢谢大家。
返回列表