T_Sql 交叉连接以及查询等等 暑假第二天

1. 交叉连接返回的是笛卡尔积

什么是笛卡尔积呢?

笛卡尔积就是 比如 表1有 12 两行 表2有 ab 两行 那么 交叉连接后返回的是 1a 1b 2a 2b 这就是交叉连接

SELECT LIST FROM TABLE1 CROSS JOIN TABLE2 可以加where筛选 或者 order by 排序

例子:

select * from 学生信息 CROSS JOIN 班级信息 order by 班级人数 //交叉连接就是笛卡尔积 关键字 CROSS JOIN 不是非要加 where

into 表名 产生新表

2.

在同一个表上进行连接叫自连接 ,就是从同一个表中筛选出我们要求的和记录 例子 自连接用的是最基本的连接

select A.班级人数,B.班级编号 FROM 班级信息 A, 班级信息 B WHERE A.班级编号<> B.班级编号

这段代码是查询出 班级信息表中 班级编号不想通过的 信息

3.联合查询 就是将多个结果合并到一个结果集中

select ......... from ..where ... UNION [ALL] select ..... from ....where ... //用UNION连接2个查询 如果 加了ALL那么重复行保留 如果没加ALL那么重复行将被删除

例子

select
A.分数,A.成绩编号 from 成绩信息 A where A.分数>85

union ALL
SELECT B.分数,33 from 成绩信息 B where B.分数> 85

合并的时候列的类型一定要相同

你可能感兴趣的:(sql)