sql表连接查询
2008-05-11 14:13
155 查看
连接查询:
连接查询是指基于两个或者两个以上的表或者视图的查询,在实际的应用中,查询单个表可能无法满足应用
程序的需求,这种情况下就需要使用连接查询;
#当使用连接查询的时候,必须在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来实现的,当使用完全外连接时,不仅会返回满足连接条件的所有行,而且会返回不满足连接条件的所有其他行;
连接查询是指基于两个或者两个以上的表或者视图的查询,在实际的应用中,查询单个表可能无法满足应用
程序的需求,这种情况下就需要使用连接查询;
#当使用连接查询的时候,必须在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来实现的,当使用完全外连接时,不仅会返回满足连接条件的所有行,而且会返回不满足连接条件的所有其他行;
相关文章推荐
- 【SQL】—多表查询的几种连接方式
- SQL各种连接查询详解(左连接、右连接..)
- Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
- MySQL——查询sql总结:简单查询、连接查询、子查询
- sql连接查询中,where关键字的位置
- SQL 学习笔记<三> SELECT之连接查询
- Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join
- Oracle中SQL语句学习六((连接查询)
- SQL查询出字段进行连接
- 深入探索SQL连接查询
- SQL各种连接查询详解
- SQL连接查询
- SQL连接查询2 外连接(左右联接查询)
- ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView
- SQL三表连接查询与集合的并、交、差运算查询
- SQL 数据库 学习 029 查询-12 连接查询 --- 内连接
- T-SQL查询高级--理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
- SQL多表连接查询
- SQL多表连接查询(详细实例)
- SQL各种连接查询详解(左连接、右连接..)