8.连接查询和集合查询

原创 2018年04月17日 09:33:31

我这些学习笔记,记录的都是我自己认为的知识点,可能以后再看的时候还要翻书,但是可以用来定位到准确的书中示例的位置,减少翻书重找的时间,利于自身知识体系的搭建。                   self-transcendence

第8章 连接查询和集合查询

 

8.1 内连接查询

内连接包括等值连接和非等值连接。除了使用=,还可以使用onusing建立等值连接。

 

8.1.1 等值连接

Select * from 1,2,3  where 1.列名 = 2.列名 and 1.列名 = 3.列名

Mysql中使用inner join对两个表进行等值连接:

Select * from 1  inner join  2 on 1.列名 = 2.列名

在等值的链接查询中,如果where中使用了and指定了其他查询条件,那么两个表之间相互关联的列(即使用=号连接条件的列)应该放在where子句的前面,以便提供查询效率。

 

8.1.2 非等值连接

除了使用=号以外的其他运算符<>等等...包括between...and运算符。

但是非等值连接一般跟等值连接一起使用,例:Select * from 1,2  where 1.列名 = 2.列名 and 1.列名 > 2.列名

 

8.1.3 使用on建立相等连接

Select  *  from  a  jion  b  on  a.列名 = b.列名

 

8.1.4 使用using建立相等连接

Select  *  from  a  jion  b  using  (列名)             这个列名就是相等列的列名

 

 

 

8.2 交叉连接

交叉连接返回的结果是一个笛卡儿积。所谓笛卡儿积,就是两个集合相乘的结果。假设集合a中有n个元素,集合b中有m个元素,最后返回的结果就是m*n

这个目前不知道有什么用,等回头再来学习。

 

 

 

8.3 自连接查询

连接查询除了在不同表中进行,也可以在同一张表进行。

Select  *  from  a as b,a as c  where  a.列名 =c.列名

因为是自连接,所以from语句中要为表定义不同的别名

 

 

 

8.4 外连接查询

查询不满足连接条件的部分记录,或者一个表在另一个表中不匹配的记录。

 

8.4.1 左外连接

左外连接不仅显示满足连接条的数据,还包括左侧表中不满足查询条件的记录。

Oracle使用+标识左外连接:

Select  *  from  a ,b  where  a.列名 (+)= b.列名

如果where中有多个限制条件,则每一个条件都要加+,外连接不能用orin,子查询中也不能用

Mysqlsql server使用left[outer] join关键字实现,outer可选:

Select  *  from  a  left jion  b  on  a.列名 = b.列名

Select  *  from  a  left jion  b  using(列名)

两种都可以

 

8.4.2 右外连接

右外连接不仅显示满足连接条的数据,还包括右侧表中不满足查询条件的记录。

Select  *  from  a ,b  where  a.列名= b.列名(+)

Oracle使用+标识右外连接:

如果where中有多个限制条件,则每一个条件都要加+,外连接不能用orin,子查询中也不能用

Mysqlsql server使用right[outer] join关键字实现,outer可选:

Select  *  from  a  right jion  b  on  a.列名 = b.列名

Select  *  from  a  right jion  b  using(列名)

两种都可以

 

8.4.3 全外连接

全外连接会把左表和右表中不满足条件的数据都显示出来。使用full[outer] join关键字显示。不包括重复行,并且mysql不能用,mysql只能用union关联左右外连接,实现全外连接。

Select  *  from  a  full join  b  on  a.列名= b.列名

 

 

 

8.5 集合查询

集合查询包括:

并操作(union):两表数据相加自动去除重复数据,保留重复数据用union all。并且两个并的查询语句列数要相同。

交操作(intersect):取两表公共行,没有重复行,保留重复数据用intersect all,列数要相同,mysql不支持。

差操作(minus):明天看,今天看不进去这个

 

 

 

 

 


数据库查询1(包括简单,连接,嵌套,集合,综合查询)

  • 2012年05月03日 00:17
  • 9KB
  • 下载

数据库 - 连接查询、嵌套查询、集合查询

连接查询连接查询:同时涉及多个表的查询 连接条件或连接谓词:用来连接两个表的条件 一般格式: [.] [.] [.] BETWEEN [.] AND [.]连接字段:连接谓词中的列名称...
  • wangzi11322
  • wangzi11322
  • 2015-05-05 13:32:33
  • 9607

SQL 中查询过程FLASH 演示

  • 2008年12月14日 19:25
  • 1.36MB
  • 下载

常用数据库查询语句 常用的数据库查询语句

  • 2010年09月15日 09:23
  • 1.89MB
  • 下载

MySQL 多表连接查询练习 (四)

测试用数据来源于Oracle数据库中的测试数据MySQL数据库表:  employees员工表,departments部门表, locations地址表库表测试试数据#----表连接查询练习 SELE...
  • vcfriend
  • vcfriend
  • 2018-02-10 19:44:24
  • 185

连接查询和集合查询

在对数据库查询过程中,有些时候一张表中的数据不能满足我们的需求,这时候就需要把多张表连接起来,如下面的两张表所示,一张表涵盖了学生的信息,一张表表示学院的信息,如果我想知道某个学生是哪个学院的话,那么...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2014-05-16 18:22:06
  • 1462

hibernate的连接查询

连接查询:    关系型数据库之所以强大,其中一个原因就是可以统一使用表来管理同类数据信息,并且可以在相关数据之间建立关系。作为支持关系型数据库的SQL语句来说,自然要对全面发挥这种强大功能提供支...
  • zj972535075
  • zj972535075
  • 2015-12-20 23:26:05
  • 1161

oracle连接查询详解

连接查询是数据库查询语句中使用频率很高的查询方式,下面根据Oracle提供的官方文档学习一下连接查询: 一   Equijoins 等值连接:      等值连接是条件连接在连接运算符为“=”号时...
  • IndexMan
  • IndexMan
  • 2012-07-20 23:48:39
  • 10305

MyBatis中连接查询

数据库中:device表的id_user列参照users表的主键id
  • u014621467
  • u014621467
  • 2017-05-25 16:19:13
  • 593

数据库的简单查询和连接查询

1、简单查询实验。用T-SQL语句表示下列操作,在学生选课数据库中实现数据查询操作: (1)查询计算机系学生的学号和姓名。 (2)查询选修了课程101的学生学号。 (3)查询选修101课程的学生学号和...
  • kaycsdn
  • kaycsdn
  • 2016-05-31 21:48:48
  • 978
收藏助手
不良信息举报
您举报文章:8.连接查询和集合查询
举报原因:
原因补充:

(最多只允许输入30个字)