现在的位置: 首页 > 数据库 > 正文

sql表连接查询

2019年06月11日 数据库 ⁄ 共 1481字 ⁄ 字号 评论关闭

连接查询:

连接查询是指基于两个或者两个以上的表或者视图的查询,在实际的应用中,查询单个表可能无法满足应用

程序的需求,这种情况下就需要使用连接查询;

#当使用连接查询的时候,必须在from子句后面制定两个或者两个以上的表

#在使用连接查询的时候,应该在列名前加表明作为前缀,但是,如果不同表之间的列名不同,可以不加表名前缀,如果在不同的表之间存在着同名列,在列名之间必须加上前缀;

#在进行连接查询的时候,可以使用表的别名来简化连接查询语句;

 

1)相等连接:

相等查询是指使用小灯比较符(=)指定连接条件的连接查询,该类连接查询主要是检索主从表之间的相关数据

select table1.column table2.column from table1,table2 where table1.column1=table2.column2;

 

2)不等连接:

不等连接是指在连接条件中使用除相等比较符外的其他比较操作符的连接查询;不等连接主要用于在不同表之间显示特定范围的信息

如:select a.ename,a,sal,b.grade from emp a,salgrade b where a.sal between b.losal and b.hisal;

 

3)自连接:

自连接是指在同一张表之间的查询连接,他主要是用在自参照表显示上下级关系或者主次关系;

如下面有这样一张表

  EMPNO         ENAME       MGR

----------------- ------------- ---------------

7839                KING               

7566               JONES             7839

7698             BLAKE                7839

7782           CLARK                 7566

 

在这份表中,有员工id,员工姓名,员工上级,这样的表,本来在行与行之间存在上下级,从属关系,所以这里就用到了自连接;

如:select  manager.ename From emp manager,emp worker where manager.empno=worker.mgr and worker.ename='BLAKE'

 

3)内连接和外连接:

内连接是用于返回满足条件的记录,外连接则是内连接的扩展,他不仅会返回满足条件的所有连接,还会返回不满足连接条件的记录,

语法:

select table1.column,table2.column2 from table1 [INNER | LEFT | RIGHT | FULL ] join table2 on table1.column1=table2.column2

1内连接:内连接返回满足连接条件的所有记录,默认情况下,在执行连接查询时如果没有制定任何操作符,哪么这些连接查询就是属于内连接;其实内连接和等值连接效果是一样的,之所以称之为内连接,是相对与外连接来说的!

如:select a.dname,b.ename from dept a,emp b where a.deptno=b.deptno and a.deptno=10;

2左(右)外连接:左外连接是用LEFT 【RIGHT】JOIN选项来实现的,当使用左(右)外连接的时候,不仅会返回用户连接条件的所有记录,而且会返回不满足连接条件的连接操作符左【右】边表的其他行;

4)完全外连接:

完全外连接是指通过full JOIN来实现的,当使用完全外连接时,不仅会返回满足连接条件的所有行,而且会返回不满足连接条件的所有其他行;

 

抱歉!评论已关闭.