1、内连接使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组成新的记录。(在内连接查询中,只有满足条件的记录才能出现在结果关系中)
select 表名1.字段名1,表名1.字段名2,……,表名2.字段名1,表名2.字段名2,…… from 表名1,表名2 where 表名1.字段名?=表名2.字段名?;(字段名?代表两张表之间共同有的字段名)
select 表名1.字段名,表名2.字段名2 from 表名1 inner join 表名2 on 表名1.字段?=表名2.字段?(字段?代表两张表之间相同的字段名)
2、左外连接的结果包括left outer字句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配的行,右表的所有选择列均为空值。
select 表1.字段名,表2.字段名 from 表1 left outer join 表2 on 表1.字段名?=表2.字段名?;
3、右外连接是左连接的反向连接,将返回右表的所有行。如果右表的某行在左表中没有匹配行,左表将返回空值。
select 表1.字段名,表2.字段名 from 表1 right outer join 表2 on 表1.字段名?=表2.字段名?;
4、复合条件连接查询是在连接查询的过程中,通过添加过滤条件,限制查询结果,使查询的结果更加准确。
就是在连接查询的后面加了条件或者限制条件。比如:语法:select 表1.字段名,表2.字段名 from 表1 right outer join 表2 on 表1.字段名?=表2.字段名?order by desc;又或者select 表名1.字段名,表名2.字段名2 from 表名1 inner join 表名2 on 表名1.字段?=表名2.字段? and 字段=条件值;
5、 带exists的子查询
select * from 表名 where exists (子查询语句);(子查询只要查询出的记录>=1条,则执行外部查询,而子查询则不看了)
6、 带in关键字的子查询
select * from 表名 where 字段名 in (子查询语句); (相同数值匹配——>显示相同数值)
7、带any、some关键字的子查询
select 字段名1 from 表名1 where 字段名1>any (select 字段名2 from 表名2);
8、 合并查询结果(查询两个表指定字段合并起来的数据)
(合并时两个表对应的列数和数据类型必须相同)select 字段名…… from 表名1 union all(可选) select 字段名…… from 表2;(加了all显示重复的数据,不加则不显示重复数据)