文档章节

外连接 内链接 子查询

芥末小弟
 芥末小弟
发布于 2017/03/01 09:54
字数 588
阅读 5
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

图五 内连接和外连接的区别

 

笛卡尔积查询:(没有意义)

语法:

* select * from A,B;

* 笛卡尔积的查询的结果不是想要的结果!!!

内连接查询

语法:

* select * from A inner join B on 条件; --- inner 可以省略!!!

* select * from A join B on 条件;

案例:

* select * from dept join emp on dept.did = emp.dno;

等价于

* select * from dept,emp where dept.did = emp.dno;---隐式内连接

外连接查询
左外连接查询

语法:

* select * from A left outer join B on 条件; ---outer 可以省略

* select * from A left join B on 条件;

案例:

* select * from dept left outer join emp on dept.did = emp.dno;

右外连接查询

语法:

* select * from A right outer join B on 条件;---outer可以省略

* select * from A right join B on 条件;

案例:

* select * from dept right outer join emp on dept.did = emp.dno;

子查询:

子查询:一个sql的查询的结果需要依赖另一个sql的查询结果!

创建表:

create table exam(

id int primary key auto_increment,

name varchar(20),

math int,

english int

);

insert into exam values (null,'aaa',59,61);

insert into exam values (null,'bbb',62,81);

insert into exam values (null,'ccc',73,73);

insert into exam values (null,'ddd',84,64);

insert into exam values (null,'eee',91,58);

insert into exam values (null,'fff',69,92);

insert into exam values (null,'ggg',75,83);

* 查询数学成绩在数学平均分之上的同学信息:

* 求数学的平均分:select avg(math) from exam;

* 求数学分数大于平均分:select * from exam where math > 平均分;

* 平均分是一条sql的查询结果.

* select * from exam where math > (select avg(math) from exam);

在子查询中可以使用关键字any、all.

* any:任意的

* > any :select * from exam where english > any (select math from exam);

* any:任意一个值.最小的那个可以了.

* < any :select * from exam where english < any (select math from exam);

* any:任意一个值.最大的那个值比较就可以了.

* all:所有的

* > all :select * from exam where english > all (select math from exam);

* < all :select * from exam where english < all (select math from exam);

* 多表的查询:

* 按照部门名称统计人员的个数!

* select d.dname,count(*) from dept d,emp e where d.did = e.dno group by d.dname;

* 统计每个部门平均工资!

* select d.dname,avg(eprice) from dept d,emp e where d.did = e.dno group by d.dname;

* 查询哪些员工的工资大于任意部门平均工资:

* select * from emp where eprice > any (select avg(eprice) from dept d,emp e where d.did = e.dno group by d.dname);

* 查询哪些员工的工资大于所有部门平均工资:

* select * from emp where eprice > all (select avg(eprice) from dept d,emp e where d.did = e.dno group by d.dname);

© 著作权归作者所有

芥末小弟
粉丝 0
博文 202
码字总数 120715
作品 0
昌平
私信 提问
加载中

评论(0)

MySQL表的CRUD及多表查询

数据库表的增删改查操作:   增、删、改   查:     单表查询       简单查询、where约束、group by分组、聚合查询、having过滤、order by排序、limit限制、正则匹配     ...

osc_69u3sqmc
2019/08/27
3
0
MySQL学习10 - 多表查询

一、多表连接查询 1.交叉连接 2.内连接 3.外连接之左连接 4.外连接之右连接 5.全外连接 二、符合条件连接查询 三、子查询 1.带in关键字的子查询 2.带比较运算符的子查询 3.带EXISTS关键字的子...

osc_2bw7m6qm
2019/04/22
0
0
MYSQL子查询与连接

37:子查询与连接 SET 列名 gbk;//改变客户端数据表的编码类型。 子查询 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句 例如 SELECT FROM t1 WHERE col1=(SELECT col2 FROM t2); 其...

别叫小伙
2016/09/30
0
0
由数据库练习浅析子查询和链接查询

本周我主要学习了mysql的相关概念及SQL、DML、DQL操作语言。下面我将以一个数据库练习为例介绍DQL中的子查询和连接查询。 在结束了本周的学习后,我进行了一个数据库练习,以下是所建的表和相...

osc_uarhdl2n
2018/09/02
5
0
mysql-----04 多表查询

本节主要介绍mysql的多表查询(多表连接查询、复合条件查询、子查询) 一、多表连接查询    #重点:外链接语法 select 字段列表 #建表 部门表 create table department(id int,name varchar(...

osc_rl9a6jid
2019/01/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2020年中国AI基础数据服务行业研究报告(附件下载)

2020年中国AI基础数据服务行业研究报告 请在百度网盘下载 链接: https://pan.baidu.com/s/1-KBY9z1qC5Cbew-89MbXfw 提取码: 2egv...

解优猎头
31分钟前
20
0
转MDL中数据读取

http://yexin218.iteye.com/blog/532184 澄清一个误区:每个Net_BuFFER包含的是一个linked-list的MDL,而不仅仅是一个MDL。所以你要访问Net_BuFFER 中数据,你需要在代码中根据需要的offset遍...

simpower
32分钟前
7
0
怎么将WORD批量转换成PDF?可以批量转换的迅捷PDF转换器!

怎么将WORD批量转换成PDF?如果是一个文档需要进行转换,大家可以通过各式各样的方式去尝试解决,例如最简单的重新编辑,将WORD文档进行复制,粘贴到PDF文档当中,但是这个方法在面对多份WOR...

开源86
36分钟前
18
0
[开源] .Net ORM 访问 人大金仓数据库

前言 京人大金仓信息技术股份有限公司(以下简称“人大金仓”)是具有自主知识产权的国产数据管理软件与服务提供商。人大金仓由中国人民大学一批最早在国内开展数据库教学、科研、开发的专家...

2881099
42分钟前
19
0
phpcms v9 数据表结构

表 1 : v9_admin 管理员表 字段 类型 Null 默认 额外 注释 userid mediumint(6) unsigned PK auto_increment 用户id username varchar(20) YES 用户名 password varchar(32) YES 密码 roleid......

邓振华
43分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部