catalog(目录)
1)rowid伪列和roenum
RowiD:是Oracle的一个重要的概念。。用于定位数据库中一条记录的一个 相对唯一地址值。
ROWNUM是一种伪列,它会根据返回记录生成一个序列化的数字。排序后的 结果集的顺序号 ,每一个结果集 都有自己顺序号 ,不能直接查询大于1的数。利用 ROWNUM,我们可以生产一些原先难以实现的结果输出。 例如实现分页操作。
rowid:实现重复记录的删除
insert into tb_student values(1,‘张三’,‘语文’,81);
过滤重复的:select name,course,count(1) from tb_student group by name,course having count(1)>1;
rownum:1必须排序 ,2不能直接取大于1的数。
2)表连接
当我们获取的数据不是来自于同一张表而是来自于多张表时就需要使用到表连接
a、笛卡尔积
–非* 必须区分 使用表名 或别名.区分
b、等值连接
(在笛卡尔积基础上 取条件列相同的值
c、非等值连接
< != <>between and
d、自连接
特殊的等值连接 (来自于同一张表)
e、外连接
3)99连接
交叉连接cross join(交叉连接)—》卡迪尔积
自然连接natural join(自然插入)–等待连接
join using连接(同名列) -->等值连接
[inner]join on 连接 -->等值连接 非等值 自连接 (解决一切) 关系列必须区分
left|right [outer] join on|using -->外连接
full join on|using -->全连接 满足直接匹配,不满足 相互补充null ,确保 所有表的记录 都至少 出现一次