嵌套查询与连接查询的区别是什么
嵌套查询与连接查询的区别如下:
1、意义上的差异
嵌套查询是包含一个或多个子查询或子查询的另一个术语的select语句。在外部查询中包含内部查询的另一个子查询是SQL语句的扩展。
连接查询是关系数据库中最重要的查询。在关系数据库管理系统中,数据之间的关系不需要确定表的建立时间,实体的所有信息通常都存储在表中。检索数据时,通过连接操作查询存储在多个表中的不同实体的信息。
2、特征上的差异
嵌套查询的主要特点是sql允许从内到外进行多层嵌套分析,并将子查询的结果作为主查询的查询条件。
连接是关系数据库模型的主要特征。多表查询可以通过连接运算符实现。连接操作给用户带来极大的灵活性,可以随时添加新的数据类型。
扩展资料:
连接查询分为:
1、等价联接:在联接条件中使用等号(=)运算符比较联接列的列值,并在查询结果中列出联接表中的所有列,包括重复列。
2、不等联接:在联接条件下使用比较运算符而不是等号运算符比较联接列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3、自然联接:在联接条件中,使用等号(=)运算符比较联接列的列值,但它使用选择列表指示查询结果集中包含的列,并删除联接表中的重复列。
参考资料来源:
1、含义上的不同
嵌套查询是包含一个或多个子查询或者子查询的另一个术语的SELECT语句。在一个外层查询中包含有另一个内层查询子查询是SQL语句的扩展。
连接查询是关系数据库中最主要的查询。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。
2、特性上的不同
嵌套查询的主要特性是SQL允许多层嵌套,是由内而外地进行分析,子查询的结果作为主查询的查询条件。
连接是关系数据库模型的主要特点,通过连接运算符可以实现多个表查询。连接操作给用户带来很大的灵活性,可以在任何时候增加新的数据类型。
扩展资料:
连接查询根据比较方式分为:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
参考资料来源:百度百科-嵌套查询
参考资料来源:百度百科-连接查询
嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果。嵌套查询不仅仅可以用于父查询select语句使用。
连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。
总结:都是关联性查询方式,嵌套查询是由内而外的查询,链接查询是多表间的查询。
2013-12-05
嵌套查询高出很多比如:
select name from table1 where id in (select id from table2)
对于上面的嵌套查询,由于是id in (....),所以查询出来的结果肯定没有重复的记录,
如果把上面的嵌套查询改为:
select name from table1,table2 where table1.id=table2.id
那这样的查询,其结果就会出现重复的记录
如果我不想用DISTINCT,那么是不是意味着在这种情况下,就必须使用嵌套查询呢?
2013-12-05