在关系代数的形式化语言中:

  • 用表、或者数据集合表示关系或者实体
  • 用行表示元组
  • 用列表示属性

此处输入图片的描述


关系代数运算符

此处输入图片的描述

我们利用下表数据加以说明1

此处输入图片的描述


关系运算符23

  • 选择运算($\sigma$):返回满足指定条件的元组()。

此处输入图片的描述


  • 投影($\pi$):返回指定的指定的属性()。

此处输入图片的描述


  • 广义笛卡尔积($R\times S$)
$R$: n 目关系, $k_1$ 个元组;
$S$: m 目关系, $k_2$ 个元组;
$R\times S$: $n+m$ 目关系, $k_1\times k_2$ 个元组;

此处输入图片的描述


  • 连接:连接运算是由一个笛卡尔积运算和一个选取运算构成的,它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
首先用笛卡尔积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。

连接的全部意义在于在水平方向上合并两个数据集合(通常是表),并产生一个新的结果集合,其方法是将一个数据源中的行于另一个数据源中和它匹配的行组合成一个新元组。

此处输入图片的描述


  • :返回两个数据集之间的精确匹配
设有关系 $R(X,Y)$ 与关系 $S(Y,Z)$,其中 X,Y,Z 为属性集合,R 中的 Y 与 S 中的 Y 可以有不同的属性名,但对应属性必须出自相同的域
关系 $R\div S$ 所得的商是一个新关系 $P(X)$,P 是 R 中满足下列条件的元组在 X 上的投影 :元组在 X 上分量值 x 的象集 $Y_x$ 包含关系 S 在 Y 上投影的集合。

此处输入图片的描述


连接操作实战

此处输入图片的描述


  • 内连接(INNER JOIN):
select Person.*,Works.* from Person inner join Works on Person.person-name =  Works.person-name

此处输入图片的描述


  • 左外连接(LEFT JOIN 或 LEFT OUTER JOIN):
select Person.*,Works.* from Person left join Works on Person.person-name =  Works.person-name

此处输入图片的描述


  • 右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN):
select Person.*,Works.* from Person right join Works on Person.person-name =  Works.person-name

此处输入图片的描述


  • 全外连接(FULL JOIN 或 FULL OUTER JOIN):
select Person.*,Works.* from Person full join Works on Person.person-name =  Works.person-name

此处输入图片的描述