0926Oracle总结

子查询

嵌套子查询,子查询先运行,得出结果后作为值参与父查询。作用在where,from,having子句中。

相关子查询,先从父表获得相关字段,带入子查询中判断符合则返回值不符合则不显示。当子查询引用了父查询表中的一个字段时,Oracle服务器执行相关子查询。

Exists &not exists condition (operator) 这里课件上给了操作符这个概念,文档里给的是condition 条件这个概念

exists &not exists 应为判断条件,返回true或者false,在相关子查询里如果子查询有值,则相应保留或不保留父查询的查询单项语句。注意与in 不同 null值可以比较

数据库对象

表,视图,索引,序列,同义词这些都可以看做数据库对象。

在创建表时注意数据类型,char ,varchar,clob(character large object)最大能存4g需要特殊方式。

存储的date是有分秒的,timestamp是可以精确到毫秒的,显示上默认没有分秒不代表不存。

高水位线

数据库存储是按数据块来存储的,有两个值控制每个数据块的物理配置PCTFREE&PCTUSED,前者是设置保留空间,后者是设置使用空间。水位线就是使用存储数据块的百分比,注意的是 delete 不会直接降低这个水位线。而truncate会直接降低水位线。

数据字典

数据字典命名方式就是 范围_结构对象 比如 user_tables,all_views,sys_indexs

约束

非空约束只能定义在列级,复合约束只能定义在表级

on delete cascade,on delete set null 当删除时关联删除相关元组或者将相关字段值设为null从而保证参照完整性。

同一个表可以定义外键为同一个表的其他字段,例子:mgr 和empno,外键必须参照在其他表主键或者unique字段上

其他

heap-organized table &index-organized table

以堆为组织的表和有排序组织的表,oracle正常存放的表都是以堆为形式存放的,给字段建索引就是index-organized 的,应该有以b+树形式存储的表。

一些pseudocolumns,rowid,rownum

即便是存储信息完全相同的两条元组他们的rowid也是不同的,

CREATE TABLE testRow
(x NUMBER(4),
 y VARCHAR(20)
)
INSERT INTO testRow VALUES(1,'hello world'),(1,'hello world')
/////作业//////
DELETE FROM testrow 
WHERE ROWID=
(SELECT ri1 FROM
(SELECT x,y,ROWID ri1,ROWNUM rm1 FROM testRow)
WHERE rm1=3) 作业 如何指定删除内容完全相同的记录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值