Mysql多表查询刚学数据库的朋友们,感觉涉及到一个表还好说,多表的话就感觉有点复杂了,小猿圈这篇详解一下mysql数据库的多表查询,希望朋友们在我这学到别的文章学不到的东西。
多表查询
mysql支持的a是SQL99标准的连接查询,并不支持oracle公司的外连接查询, 但是支持oracle等值查询,不等值查询,自连接查询,子查询(只要不是外连接(+)都支持) oracle也支持SQL99标准的连接查询
点击 "运行实例" 按钮查看在线实例
内连接
--等值查询 select e.empno,e.ename,e.sal,d.dname from emp e inner join dept d on e.deptno=d.deptno; --简单而言:就是将oracle多表查询语法中的逗号换成inner join, where中的查询条件放在on后面,强调on后面不单单可以是连接条件也可以是查询条件 --不等值查询 select e.empno,e.ename,e.sal,s.grade from emp e inner join salgrade s on e.sal>=s.losal and e.sal<=s.hisal; 左外连接(右外连接--right join) select d.deptno,d.dname,count(e.empno) from dept d left join emp e on d.deptno=e.deptno group by d.deptno, d.dname --左外连接要注意,想全部显示那个表的数据,就把那个表作为基表, 例如想显示dept表中的40号部门,所以dept就是基表,这个oracle中的(+)相反。 查看当前数据库的字符集 --show variables like 'character%'; mysql中的滤空函数 --ifnull(字段名,想要的值) --mysql没有nvl()函数 mysql中的字符串连接 --mysql不支持oracle中的"||"连接符号 --mysql支持oracle中的concat()连接函数
点击 "运行实例" 按钮查看在线实例
mysql编译 --在linux64位场景下,编译mysql共享库需要更多的共享库文件 -ldl:linux下的动态库文件 -lpthread:多线程共享库文件 -lm:数学函数共享库 -stdc++:mysql用到了部分c++函数,需要链接c++的共享库 -lrt:时间共享库函数
点击 "运行实例" 按钮查看在线实例
linux32位场景下可能没有问题
讲解很详细吧,希望大家看完这篇文章能自己在电脑上练习一遍,真正可以消化,真正可以转变为自己的知识,这篇就到这里了,希望大家对小猿圈文章的喜爱。