SQL有关表的左连接,右连接,以及内连接

        首先我们需要想一下,我们为什么需要将表连接在一起呢?换种说法,即我们需要查询的数据不在同一张表里面,而是在A表中查出一部分,然后再去B表中查出一部分,然后两者结合在一起,才是我们需要的部分。那么我们为什么不是把我们需要的数据从A表中查出,再去B表中查出,然后做一个简单的拼接呢?显然这两者契合的数据必然是冗杂de,我们还需要进行进一步的筛选,才能选出我们所需的数据。

我们先来创建两张表:

STUDENT表:

CREATE TABLE STUDENT(
ID VARCHAR(20),
NAME VARCHAR(20),
SCORE NUMBER(5,2),
BANJIID NUMBER(1),
GENDER VARCHAR2(30)
);

TEACHER表:

CREACREATE TABLE TEACHER(
ID VARCHAR(20),
NAME VARCHAR(20),
ADDRESS VARCHAR2(30),
SEX VARCHAR2(20)
);

创建完之后我们往里面输入数据

左连接: 是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。话说这里的判断条件为什么不同where呢?因为我们连接出来的表是一张临时表,需用on,我们一般的单表查询都是真实存在的表,用where。

图形展示:

 

左连接题目:查询出所有老师的NAME以及和老师的ID相同的学生的NAME?

我们从这句话里面能够看出主表是老师TEACHER,因为是所有老师的ID嘛。条件是老师和学生的ID相同。

SQL语句:

SELECT A.NAME, B.NAME FROM TEACHER A LEFT JOIN STUDENT B ON A.ID = B.ID;

查询结果显示:

内连接:就是两者相同的部分,两者的相同信息混合在一起,然后进行条件筛选。

图形展示:

                                     

内连接 题目:根据两张表的共同ID,查出老师TEACHER表里面的地址ADDRESS和学生STUDENT表里面的成绩SCORE。

SQL语句:

SELECT A.ADDRESS,B.SCORE
FROM TEACHER A 
INNER JOIN STUDENT B
ON A.ID=B.ID;

查询结果显示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值