复合查询
文章目录
- 复合查询
- 多表查询
- 自连接
- 子查询
- 单行查询
- 多行查询
- 多列子查询
- 合并查询
- 表内连和外连
- 内连
- 外连
多表查询
前面讲述的关于进行一个表的简单查询和关于时间函数的相关问题,下面要进行复合查询的相关内容。
这里要使用卡笛尔集的概率让两个表融合成为一个表。
需要使用相应的字段进行对于关系解决问题,然后合成同一个表(这里就是笛卡尔查询),利用不同表的字段含义相同合成一个新的表。
然后在对于新的表进行筛选相关内容(基本语法与之前的差不多)
上面的就是使用了进行多表查询把emp的deptno与dept的deptno合并在一起,使用相对应的关系。
自连接
在同一个表之中进行查询,子查询作为父查询的条件进行查询相关的内容
这里进行这一个操作。
子查询
单行查询
最后只是返回一行或者一列的数据
多行查询
这里目前使用in,all和any等关键字
in关键字:不包含自己
all关键字:全部的人员
any显示任意的满足的条件的列
多列子查询
经过多个条件筛选出多行多列条件满足的数据
合并查询
使用union与union all关键字进行合并查询结果
union为合并并且去除重复的行
Union all不会合并重复的行
表内连和外连
这里区分是否全部数据都是被填充(数据之间是否一一对应的关系,是否有相应的数据进行对于数据)
内连
两个表的数据都是一一对应的关系(都有对应的数据)
select column from table_name1 inner join table_name2 on 连接条件 and 连接条件;
外连
其中一个表做完主表,然后另外一个表作为从表。如果从表对应主表的连接没有数据,主表的属性也是要显示出来。
左右连接基本上使用方法差不多,只不过表主的位置不同
select column from table_name1 right join table_name2 on 连接条件;