sqlserver查询(子查询,全连接,等值连接,自然连接,左右连,交集,并集,差集)
--部门表 create table dept( deptno int primary key,--部门编号 dname nvarchar(30),--部门名 loc nvarchar(30)--地址 ); --雇员表 create table emp( empno int primary key,--雇员号 ename nvarchar(30),--员工姓名 job nvarchar(30),--雇员工作 mrg int,--雇员上级 hiredate datetime,--入职时间 sal numeric(10,2),--薪水 comm numeric(10,2),--奖金 deptno int foreign key references dept(deptno)--设置外键 ); insert into dept values (10,'ACCOUNTING','NEW YORK'); insert into dept values (20,'RESEARCH','DALLAS'); insert into dept values (30 ,'SALES','CHICAGO'); insert into dept values (40, 'OPERATIONS','BOSTON'); insert into emp values (7369,'SMITH','CLERK',7902,'1980-12-17',800.00,null,20); insert into emp values(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600.00,300.00,30); insert into emp values(7521,'WARD','SALESMAN',7698,'1981-2-22',1250.00,500.00,30); insert into emp values(7566,'JONES','MANAGER',7839,'1981-4-2',2975.00,null,20); insert into emp values(7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250.00,1400.00,30); insert into emp values(7698,'BLAKE','MANAGER',7839,'1981-5-1',2850.00,null,30); insert into emp values(7782,'CLARK','MANAGER',7839,'1981-6-9',2450.00,null,10); insert into emp values(7788,'SCOTT','ANALYST',7566,'1987-4-19',3000.00,null,20); insert into emp values(7839,'KING','PRESIDENT',null,'1981-11-17',5000.00,null,10); insert into emp values(7844,'TURNER','SALESMAN',7698,'1981-9-8',1500.00,0.00,30); insert into emp values(7876,'ADAMS','CLERK',7788,'1987-5-23',1100.00,null,20); insert into emp values(7900,'JAMES','CLERK',7698,'1981-12-3',950.00,null,30); insert into emp values(7902,'FORD','ANALYST',7566,'1981-12-3',3000.00,null,20); insert into emp values(7934,'MILLER','CLERK',7782,'1982-1-23',1300.00,null,10);
子查询
■什么是子查询
子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询
■单行子查询
单行子查询是指只返回一行数据的子查询语句
请思考:如何显示与SMITH同一部门的所有员工?
select * from emp where deptno=(select deptno from emp where ename=’SMITH’);
多行子查询
多行子查询指返回多行数据的子查询
请思考:如何查询和部门的工作相同的雇员的名字、岗位、工资、部门号
1,先查询10 号部门有哪些岗位
select distinct job from emp where deptno=10;
2,显示和他的岗位有一个相同的员工
select ename,job,sal,deptno from emp where job in(select distinct job from emp where deptno=10)
全连接
select * from emp,dept;
自然查询
自然连接:将等值连接中的重复列去掉 select student.sno,sname,ssex,sage,sdept,cno,grade from student,sc where student.sno=sc.sno;
左连接和右连接
左连接:left on, 依次遍历左边这个表,查询在右表中是否有对应的记录,如果有对应记录,则匹配,否则显示null select student.sno,sname,ssex,sage,sdept,cno,grade from student left join sc on(student.sno=sc.sno); 右连接:rigth on,以右边的表为参照 select student.sno,sname,ssex,sage,sdept,cno,grade from student right join sc on(student.sno=sc.sno);
union并集
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。
select ename,sal,job from emp where sal>2500 union select ename,sal,job from emp where job='MANAGER';
select * from student where sage>20 union select * from student where sage<22
对两个结果集进行“union”,"intersecrt","except"运算这两个结果集的列数必须相同.
intersect交集
使用该操作符用于取得两个结果集的交集。
select ename,sal,job from emp where sal>2500 intersect select ename,sal,job from emp where job='manager';
select * from student where sage>20 intersect select * from student where sage<22
except差集
使用该操作符用于取得两个结果集的差集,它只会显示存在第一个集合中,而不存在第二个集合中的数据。
select ename,sal,job from emp where sal>2500 minus select ename,sal,job from emp where job='manager';
select * from student where sage>20 except select * from student where sage>22
sqlserver查询(子查询,全连接,等值连接,自然连接,左右连,交集,并集,差集)的更多相关文章
- Python-select 关键字 多表查询 子查询
sql 最核心的查询语句!!!! 增删改 单表查询 select语句的完整写法 关键字的书写顺序 执行顺序 多表查询 笛卡尔积 内连接 左外连接 右外连接 全外连接 通过合并左外连接和右外连接 子查询 ...
- 【知识库】-数据库_MySQL之基本数据查询:子查询、分组查询、模糊查询
简书作者:seay 文章出处: 关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询 回顾:[知识库]-数据库_MySQL常用SQL语句语法大全示例 Learn [已经过测试校验] 一.简单查询 ...
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...
- 【数据库】SQL经典面试题 - 数据库查询 - 子查询应用二
上节课我们通过子查询,完成了查询的最高分学生的需求,今天我们来学习子查询的分类,以及通过子查询来完成工作中经常遇到一些个性化需求. 子查询概念: 一个SELECT语句嵌套在另一个SELECT语句中,子 ...
- ylb: SQL表的高级查询-子查询
ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询. 1,ylb:表的高级查询-子查询返回顶部 --======== ...
- MYSQL 查询方法 统计查询 链接查询 子查询
mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据select Code,Name from Info --查指定列的数据select Code as ...
- MySQL的查询,子查询,联结查询,联合查询
MySQL的查询,子查询,联结查询,联合查询 一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二 ...
- Oracle的查询-子查询
--子查询 --子查询返回一个值 --查询出工资和scott一样的员工信息 select * from emp where sal in (select sal from emp where enam ...
- coding++:mybatis 嵌套查询子查询column传多个参数描述
mybatis 嵌套查询子查询column传多个参数如下: 2.代码示例 备注:注意,相同颜色的单词都是有关联的 <resultMap id="blogResult" typ ...
- sql ,内连接,外连接,自然连接等各种连接
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和c ...
随机推荐
- Scrapy 框架入门简介
一.Scrapy框架简介 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. ...
- js垃圾回收
内存生命周期 分配你所需要的内存 使用分配到的内存(读.写) 不需要时将其释放\归还 所有语言第二部分都是明确的.第一和第三部分在底层语言中是明确的,但在像 JavaScript 这些高级语言中,嵌入 ...
- Angular开发规范
目录 一. 前言 1.1. 规范目的 1.2. 局限性 二. 文件规范 2.1. 文件结构约定 2.2. 单一职责原则 ...
- [考试反思]1030csp-s模拟测试94:未知
排名也未知.第1或第5. 分数也未知,300或260. 人生真是大起大落... 啊啊啊啊啊我好感动啊竟然重测了一次----- 评测机怎么测怎么RE,本机怎么测怎么AC(任意编译指令,任意评测平台) 结 ...
- [考试反思]0902NOIP模拟测试35:摆动
skyh/Mr.zkt214 cbx204 6个200 4个180 172 162 我:rank16,160 呃,可以看到这个分差.... 对了教练说了两句话需要记录一下: 1.不要因为一时情绪而作出 ...
- [考试反思]NOIP模拟测试19:洗礼
[]260 []230[]210 []200[8]170[9]160 这套题一般,数据很弱,T1T2暴力都能A,而且都是一些思维题,想不到就爆0. 原因不明,很多一直很强的人在这一次滑铁卢了,于是我个 ...
- Android 4.2 获取应用缓存接口变化
PackageManager.getPackageSizeInfo(String packageName, IPackageStatsObserver observer)不可用,改为PackageMa ...
- Xshell6配置ssh免密码登录虚拟机
首先先说明一下有密码的,涉及到root登陆权限的问题: 1.用超级管理员身份登录,修改 vi /etc/ssh/sshd_config, 找到 把其中的permitRootLogin 修改成: # ...
- css3-3D特效
2D页面即是在浏览器中开发的页面, 3D可以比喻浏览器为窗口,透过浏览器看到3D物体 一.设置3D场景 perspective:800[3D世界中的物体距3D场景的距离800px] perspecti ...
- stdClass Object 数据的处理
stdClass Object 数据的处理 在调用接口的时候往往返回的是 stdClass Object 类型的数据,我们在取数据值的时候就阔以直接使用对象->属性值的方式操作值 $ret = ...