SQL----关系型数据库之连接查询

来源:互联网 发布:淘宝卖家草稿箱在哪里 编辑:程序博客网 时间:2024/06/05 06:08

在面试中有面试官提到关于连接查询的问题,所以特意查找了一下有关连接查询的概念。

连接查询是关系型数据库中主要的查询。包括以下:等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询和复合连接查询等。

1.等值与非等值连接查询

   SELECT  *   FROM    <表名1> ,<表名 2>

   WHERE  [<表名 1>.] <列名 1> <比较运算符> [<表名 2> .]<列名 2>

  当<比较运算符>为 = 时称为等值运算符,使用其他运算符称为非等值连接。

2.自然连接:等值连接中把重复的属性列去掉则为自然连接。

3.自身连接:表自己跟自己连接

4.外连接查询。

    通常的连接操作,只有满足连接条件的元组才能作为结果输出。即将主体部分的所有悬浮元组都保存在结果集中。

    左外连接列出左边关系中所有元组,右外连接列出右边关系中所有元组。

5.多表连接,即三个以及三个以上的表连接进行查询。

嵌套查询:

SELECT Sname FROM  Student    //外层父查询

WHERE  Sno IN  

 ( SELECT Sno FROM SC WHERE Con='2');  //内层子查询

* 子查询条件不依赖夫查询,称为不相关子查询 。否则称为相关子查询

带有EXISTS谓语的子查询:即:EXISTS代表存在量词。带有EXISTS谓语的子查询不返回任何数据,只产生逻辑真值 ‘True' 或  ’False'。

SELECT Sname FROM  Student    //外层父查询

WHERE  EXISTS

 ( SELECT * FROM SC WHERE  Sno=Student.Sno AND Con='1');  //内层子查询

*使用存在量词EXISTS后,若内层查询结果非空,则外层的WHERE子句返回真值,否则返回假值。

集合查询:

    SELECT语句的查询结果是元组的集合,所以多个SELECT语句的查询结果可以进行集合操作。

   并操作:UNION             交操作:INTERSECT        差操作: EXCEPT

原创粉丝点击