sql 内连接 子查询 合并查询
-- 内连接:
-- 显示员工姓名、工资和公司所在地
select e.ename, e.sal, d.dname from emp e,dept d; -- 笛卡尔积
select e.ename, e.sal, d.dname from emp e join dept d; -- oracle语法错误,没有笛卡尔积;mysql 没有语法错误
select e.ename, e.sal, d.dname from emp e, dept d where e.deptno = d.deptno;
select e.ename, e.sal, d.dname from emp e join dept d on e.deptno=d.deptno;
-- 显示部门号为10的员工姓名、工资、部门名称
select d.dname, e.ename, e.sal from emp e, dept d where d.deptno = e.deptno and e.deptno = 10;
select d.dname, e.ename, e.sal from emp e join dept d on d.deptno = e.deptno where e.deptno = 10;
-- 显示姓名、工资、工资的级别(on 后面不仅仅可以加 ... = ... ,还可以是 between ....and ...)
select e.ename, e.sal, s.grade from emp e, salgrade s where e.sal between s.losal and s.hisal;
select e.ename, e.sal, s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;
-- 显示姓名、工资、部门名称,并按部门号排序
select e.ename, e.sal, d.dname from emp e join dept d on e.deptno = d.deptno order by e.deptno desc;
-- 自关联
-- 查询FORD上级领导名字
select e.ename, e.sal, e.job, e.sal, o.ename from emp e join emp o on e.mgr = o.empno where e.ename = 'FORD';
-- 单行子查询:
-- 查询和 SMITH 同一部门的所有员工
select * from emp e where e.deptno = (select deptno from emp where ename = 'SMITH');
-- 查询工资大于 30号部门所有员工工资的员工
select * from emp o where o.sal > (select max(sal) from emp e where e.deptno=30);
-- 多列子查询:
-- 查询与 SMITH 的部门和岗位完全相同的员工
select * from emp e where (e.deptno, e.job) = (select o.deptno, o.job from emp o where o.ename = 'SMITH');
-- 高于自己部门平均工资的员工信息
select * from emp o join (select deptno, avg(sal) avg_sal from emp group by deptno) e on e.deptno=o.deptno where sal>avg_sal;
-- 修改SIMTH的岗位、工资、补助和scott的一样
update emp set (job, sal, comm) = (select job, sal, comm from emp where ename='SCOTT') where ename='SMITH'; -- mysql错误
-- 多行子查询
insert into bonus values(1,2,3,4);
insert into bonus select * from bonus; -- oracle、mysql都支持
insert into bonus(ename, job) select ename, job from bonus;
create table test(id, name, sal, job, deptno) as select empno, ename, sal, job, deptno from emp; -- mysql 错误,用查询结果创建一个新表:
-- 合并查询
-- union, union all, intersect, minus
-- union 并集,去掉重复行
select * from emp where sal>2500 union select * from emp where job='MANAGER';
-- union all 并集,不去掉重复行
select * from emp where sal>2500 union all select * from emp where job='MANAGER';
-- intersect 交集
select * from emp where sal>2500 intersect select * from emp where job='MANAGER';
-- minus 差集,存在于第一个集合中,且不存在于第二个集合中
select * from emp where sal>2500 minus select * from emp where job='MANAGER'; -- mysql 错误
select * from emp where job='MANAGER' minus select * from emp where sal>2500; -- mysql 错误
-- 差集图示:
sql 内连接 子查询 合并查询的更多相关文章
- SQL - 内连接与外连接
PDF下载地址:SQL-内连接与外连接.pdf 连接查询在关系型数据库中经常用到,是多表联合查询的基础. 主要包含:内连接,外连接,交叉连接. SQL - 内连接与外连接 内连接 等值连接 不等值连接 ...
- My SQL的内连接,外链接查询
1.内连接:只连接匹配的行. 2.左外连接:包含左边表的全部行,以及右边表中所有匹配的行,无论右边的表有没有和左边匹配的行,左边的所有行都必须要显示. 3.右外连接:包含右边表的全部行,以及左边表中所 ...
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...
- mysql 子查询 合并查询
4.1带In 关键字的子查询 一个查询语句的条件可能落在另一个SELECT 语句的查询结果中. SELECT * FROM t_book WHERE booktypeId IN (SELECT id ...
- sql 内连接和外链接
如表 ------------------------------------------------- table1 | table2 | ----------------- ...
- SQL内连接-外连接join,left join,right join,full join
1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...
- sql 内连接、外连接、自然连接等各种连接
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和c ...
- SQL内连接与外连接的区别【转】
--表stuid name 1, Jack2, Tom3, Kity4, nono--表examid grade1, 562, 7611, 89 内连接 (显示两表id匹配的)select stu.i ...
- sql内连接外连接自然连接
为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...
随机推荐
- Postman 发送 Bearer token
Bearer Token (RFC 6750) 用于OAuth 2.0授权访问资源,任何Bearer持有者都可以无差别地用它来访问相关的资源,而无需证明持有加密key.一个Bearer代表授权范围.有 ...
- Hive执行过程
http://blog.csdn.net/wf1982/article/details/9122543
- shell脚本实现无密码交互的SSH自动登陆
ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆. 搜索一下不难找到类似的例子,使用expe ...
- 【数组】Jump Game
题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...
- Apache版本hadoop-2.6.0.tar.gz平台下搭建Hue
不多说,直接上干货! http://archive.apache.org/dist/ http://www.cnblogs.com/smartloli/p/4527168.html http://ww ...
- window启动程控制
1.启动服务管理(RPC) 2.开启远程选项 3.开启防火墙允许
- 【原】中文Ubuntu主目录下的文档文件夹改回英文
想把中文Ubuntu主目录下的文档文件夹改回英文,在Terminal下面操作的时候要输入中文特别不方便,于是便用了更改名字的想法 方法一: 首先把那几个中文名称修改成相应的英文,比如 Desktop. ...
- canvas文字自动换行、圆角矩形画法、生成图片手机长按保存、方形图片变圆形
canvas的文字自动换行函数封装 // str:要绘制的字符串 // canvas:canvas对象 // initX:绘制字符串起始x坐标 // initY:绘制字符串起始y坐标 // lineH ...
- VUE自定义指令生命周期,VUE生命周期
一.自定义指令的生命周期 自定义指令有五个生命周期(也叫钩子函数),分别是 bind,inserted,update,componentUpdated,unbind bind:只调用一次,指令第一次绑 ...
- Struts2 Web Project 实现中文、英语的切换
1.struts.xml文件部分配置: <package name="default" namespace="/login" extends=" ...