SQL中加入的使用示例

介绍

这篇文章主要介绍了SQL中加入的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

一。基本概念

关于sql语句中的连接(加入)关键字,是较为常用而又不太容易理解的关键字,下面这个例子给出了一个简单的解释,建表user1、user2:

表1:创建表user2 (int id, user_name varchar (10) varchar (10)),
插入user1值(1,“唐僧# 39;‘dtgdf& # 39;);
插入user1值(2,' sunwukong& # 39;, dzsf& # 39;);
插入user1值(1,“zhubajie& # 39;‘jtsz& # 39;);
插入user1值(1,“shaseng& # 39;‘jslh& # 39;);
表:创建表user2 (int id, user_name varchar (10) varchar (10)),
插入user2值(1,“sunwukong& # 39;‘chengfo& # 39;);
插入user2值(2,' niumowang& # 39;,作品# 39;);
插入user2值(3 ' jiaomowang& # 39;,作品# 39;);
插入user2值(4‘pengmowang& # 39;,作品# 39;);

sql标准中加入的类型

 sql中加入的使用示例

<强> 1。内连接(内部连接或连接)

(1)概念:内联接是基于连接谓词将两张表的列结合在一起,产生新的结果表

(2)。内连接维恩图:

 SQL中加入的使用示例

(3)。sql语句

选择一个。id,一个。user_name b。从user1内加入user2 b alt=" SQL中加入的使用示例">

<强> 2。外连接

外连接包括左向外联接,右向外联接或完整外部联接

。左外连接:加入或离开左外连接
(1)概念:左向外联接的结果集包括左外子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。

(2)左外连接维恩图:

 SQL中加入的使用示例

(3) SQL语句:

选择一个。id,一个。user_name b。从user1左加入user2 b alt=" SQL中加入的使用示例">

b。右外连接:对加入或右外连接
(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
(2)右外连接维恩图:

 SQL中加入的使用示例

(3) SQL语句

选择b。user_name b。结束了,一个。从user1权利加入user2 b alt=" SQL中加入的使用示例">

c。全外连接:全加入或全外连接

(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
(2)右外连接维恩图:

 SQL中加入的使用示例

(3) SQL语句

选择一个。id,一个。user_name b。从user1全面加入user2 b alt=" SQL中加入的使用示例">

3。笛卡尔连接(交叉连接)

1。概念:没有在子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(user1和user2交叉连接产生4 * 4=16条记录)
2。交叉连接:交叉连接(不带条件)
3。sql语句:
选择a.user_name, b。user_name,。结束后,b。从user1交叉连接user2 b;

<强>二。使用技巧

1。使用加入更新表
我们使用下面语句将user1表中同时存在user1表和user2表中记录上的字段更新为“qtda& # 39;。

更新user1设置在=& # 39;qtds& # 39; user1的地方。user_name(选择b。user_name从user1内加入user2 b alt=" SQL中加入的使用示例">

<强> 4。实现分组选择数据

要求查询出user1中每个人杀死对多的前两天。
首先,我们可以通过下面语句查询出某个人杀死最多的两天,

选择一个。user_name b。timestr b。杀死从user1加入user_kills b alt=" SQL中加入的使用示例">

SQL中加入的使用示例