数据库——sql语句 连接查询

数据库——连接查询

1.定义:同时涉及多个表的查询。
2.连接条件常用格式:
[<表名1>]<列名><比较运算符>[<表名2>]<列名2>
连接字段类型必须是可比的。(字符串比字符串,数值比数值)
引用表1和表2中同名属性时,必须加表名前缀;引用唯一属性时可加可不加。
3.连接字段

  • 连接谓词中的列名称为连接字段
  • 连接条件中的各连接字段类型必须是可比的,但不必是相同的。

广义笛卡尔积(不带任何连接条件,很少使用):

数据库——sql语句 连接查询

自然等值连接:

数据库——sql语句 连接查询
表别名(from语句中 原名as别名)
数据库——sql语句 连接查询
distinct避免重复
数据库——sql语句 连接查询
select语句中加入distinct可以解决这个问题
数据库——sql语句 连接查询

自身连接(取别名以示区别且必须使用别名前缀):

数据库——sql语句 连接查询
数据库——sql语句 连接查询

内连接

where语句中指定的内连接称为旧式内连接
transact-SQL查询中内连接用:
表1 Inner Join 表2 on 连接条件
数据库——sql语句 连接查询
数据库——sql语句 连接查询

外连接

  • 普通连接操作只输出满足连接条件的元组
  • 外连接指定表作为主体表,主体表中不满足连接条件的元组也输出,另一表对应的位置给予空值。
    左外连接:主体表Left Outer Join非主体表
    数据库——sql语句 连接查询
    数据库——sql语句 连接查询
    右外连接:非主体表Right Outer Join主体表
    数据库——sql语句 连接查询
    全外连接:主体表Full Outer Join主体表
    数据库——sql语句 连接查询

多表连接

数据库——sql语句 连接查询
数据库——sql语句 连接查询

复合条件连接

数据库——sql语句 连接查询