北大青鸟oracle学习笔记12
来源:互联网 发布:极路由隐藏网络 编辑:程序博客网 时间:2024/05/16 06:34
关系型数据库理论中字段值必须是单值,而oracle中允许在一个字段中存储一个表的内容。
如:员工表中的外键 部门编号,oracle中这个字段可以存放部门的记录而并不是一个外键,这样查询时候的效率会提高。
可变数组:
创建带有可变数组的表
创建可变数组基类型
create or replace type 基类型名 as object(字段清单);
创建可变数组类型
create or replace 可变数组类型名 as varray(最大行数) of 可变数组的基类型;
实例:
create or replace type mingxitype as object
(
goodsid varchar(15),
incount int,
providerid varchar(10)
);
create or replace type arrmingxitype as varray(100) of mingxitype;
创建一个主表
create table instock
(
orderid int primary key,
indate date,
mingxi arrmingxitype
);
利用构造函数插入数据
insert into instock values(
'200208070001',
to_date('2002-08-07','yyyy-mm-dd'),
arrmingxitype(
mingxitype('101',10,'S01'),
mingxitype('102',20,'S02')
)
);
查询
select * from instock;则显示对象而并不是像关系数据库那样的表单
select * from table(
select s.mingxi from instock s where orderid = 1001
);
此时显示的是可变数组中的信息而没有主表中的信息。
table函数要求内部子查询必须明确确定一条记录!
修改可变数组比较麻烦,必须修改整个数组的记录。所以可变数组常使用在基本不需要修改的记录(如历史记录等)
update instock set mingxi = arrmingxitype(
mingxitype('101',20,'S01'),
mingxitype('102',30,'S02')
)where orderid = '200208070001';
删除记录操作与关系型数据库一致,删除整条主记录。
delete from instock where orderid = '1001';
- 北大青鸟oracle学习笔记12
- 北大青鸟oracle学习笔记1~2
- 北大青鸟oracle学习笔记3
- 北大青鸟oracle学习笔记4 5
- 北大青鸟oracle学习笔记6
- 北大青鸟oracle学习笔记7
- 北大青鸟oracle学习笔记8 9
- 北大青鸟oracle学习笔记10
- 北大青鸟oracle学习笔记11
- 北大青鸟oracle学习笔记13
- 北大青鸟oracle学习笔记14 15
- 北大青鸟oracle学习笔记16
- 北大青鸟oracle学习笔记17
- 北大青鸟oracle学习笔记18
- 北大青鸟oracle学习笔记23 24
- 北大青鸟oracle学习笔记25
- 北大青鸟oracle学习笔记29 30
- 北大青鸟oracle学习笔记31
- 骆驼、雄狮和顽童
- GDI(Graphics Device interface)
- jQuery 1.4: 15个你应该知道的新特性
- dos shell for的使用例子
- Socket I/O模型
- 北大青鸟oracle学习笔记12
- ASP.NET 地址栏参数加密
- Hibernate 开发指南 学习笔记
- DROP TABLESPACE时数据文件是否会自动删除
- HTTP 错误 500.19 - Internal Server Error
- 那些计算机界的伟大女性
- Kerberos 5原理解析
- HTTP 错误 500.19 - Internal Server Error
- 第二版