数据库左连接、右连接、内连接、全连接

数据库左连接、右连接、内连接、全连接,第1张

1.INNER JOIN (内连接)

        内连接是一种一一映射关系,就是两张表都有的才能显示出来

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            INNER JOIN table_b B

            ON A.PK = B.PK

2.LEFT JOIN (左连接)

        左连接是左边表的所有数据都有显示出来,右边的表数据只显示共同有的那部分,没有对应的部分只能补空显示,所谓的左边表其实就是指放在left join的左边的表

用韦恩图表示如下:

                SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

               FROM table_a A

                LEFT JOIN  table_b B

                ON A.PK = B.PK

3.RIGHT JOIN(右连接)

        右连接正好是和左连接相反的,这里的右边也是相对right join来说的,在这个右边的表就是右表

用韦恩图表示如下:

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            RIGHT JOIN  table_b B

            ON A.PK = B.PK

4.OUTER JOIN(外连接、全连接){mysql不支持外连接}

        查询出左表和右表所有数据,但是去除两表的重复数据

韦恩图表示如下:

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            FULL  JOIN table_b B

            ON A.PK = B.PK

悬浮元组:

    在自然连接中,被舍弃的元组被称为悬浮元组

1、 左连接

    是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。左联接的结果集包括 LEFT 子句中指定的左表的所有行,而不仅仅是联接列所 匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

2、 右联接

    是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值

3     全连接:

        是返回两个表中的所有的值,没有对应的数据则输出为空。

         内连接

                       等值连接

                       非等值连接

                       自链接

         外连接

                        左外连接

                        右外连接

                        全外连接

         交叉连接

元组是关系数据库中的基本概念,是事物特征的组合,可以描述一个具体的事物。

关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,元组的集合称为关系,每列就是一个属性。 在二维表里,元组也称为行,属性为列。

扩展资料:

数据库中比较重要的几个关键字:

1、字段:某一个事物的一个特征,或者说是属性。

2、列:字段的另一种称谓。

3、表:记录的组合 表示同一类事物的组合。

4、主键:能唯一标识信息的事物。

5、外键:一个执行另个一个表的指针。

参考资料来源:百度百科-元组

1、每条纪录前面要

insert

比如:

insert

into

student

values(11,'张三','三','中国','1990-1-1','数学系',06,06,'2007-9-1','四川',84681101),

insert

into

student

values(22,'李四','男','中国','1989-5-6','计算机系',05,06,'2006-9-1','四川',84681201),

insert

into

student

values(33,'王五','男','中国','1988-6-5','文学院',06,07,'2007-9-1','四川',84682222),

insert

into

student

values(44,'孙六','女','中国','1990-1-1','商学院',04,07,'2005-9-1','陕西',84476554)

2、批量插入的方法:

代码示例:

sql写法:

INSERT

INTO

TestTable

select

1,'abc'

UNION

SELECT

2,'abc'

UNION

SELECT

1,'cde'

--TestTable表没有主键,ID不是主键。

oracle的写法:

INSERT

INTO

TestTable

select

1,'abc'

from

dual

UNION

SELECT

2,'abc'

UNION

SELECT

1,'cde'

from

dual

注意:在这里我们看到,在oracle中当选择直接量,而不是从具体的某个表中select

数据时,后便必须要加上from

dual,其实就是在oracle中,要求每个查询都要有一个“来源”。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6907432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存