对象标识符和对象引用+对象标识符+对象引用+为对象引用插入数据+查询对象引用OID对应的实际值+更新对象引用+删除对象引用
2017-06-02 22:21
495 查看
对象标识符和对象引用
测试数据
对象标识符(OID)
1对象表中的每一个对象都有唯一的对象标识符(Object identifier,OID)
2OID存储在名称为ref的列中
3OID表示数据库中对象的位置,可以将OID存储在对象引用中,通过他就可以访问它引用的对象
举例
ref(s)的值就是OID。
对象引用
1对象引用使用ref类型进行定义,通常用作指向对象表中对象的指针
2对象引用可以为对象表之间的关系建立模型,而不是使用外键。
语法
create table tabe_name(
ref_name ref type_name scope is table_type_name
);
scope is:将对象引用限制在特定表中的对象上
举例
为对象引用插入数据
查询对象引用OID对应的实际值
更新对象引用
删除对象引用
测试数据
--创建对象类型class3 --创建对象类型头 create or replace type class3 as object ( id number, name varchar2 ( 20 ), member function get_name(no varchar2) return varchar2 ) ; --创建对象体 create or replace type body class3 as member function get_name(no varchar2) return varchar2 as name varchar2(20); begin select sname into name from zhou.student where sno=no ; return name; end; end; --创建对象类型studentfar,里面有列对象class3 create or replace type studentfar as object ( sid number, sname varchar2 ( 20 ), class class3 ) ; --创建对象表 create table studentson of studentfar; --插入数据 insert into studentson values(11,'丽丽',class3(1101,'语文')); insert into studentson values(11,'丽丽',class3(1102,'数学'));
对象标识符(OID)
1对象表中的每一个对象都有唯一的对象标识符(Object identifier,OID)
2OID存储在名称为ref的列中
3OID表示数据库中对象的位置,可以将OID存储在对象引用中,通过他就可以访问它引用的对象
举例
select ref(s) from studentson s where s.class.id=1101;
ref(s)的值就是OID。
对象引用
1对象引用使用ref类型进行定义,通常用作指向对象表中对象的指针
2对象引用可以为对象表之间的关系建立模型,而不是使用外键。
语法
create table tabe_name(
ref_name ref type_name scope is table_type_name
);
scope is:将对象引用限制在特定表中的对象上
举例
create table school( id number, class_ref ref studentfar scope is studentson);
为对象引用插入数据
insert into school values(1,(select ref(s) from studentson s where s.class.id=1101)); select * from school; select class_ref from school;
查询对象引用OID对应的实际值
select id,deref(class_ref) from school; select id,deref(class_ref).sid,deref(class_ref).sname,deref(class_ref).class.id,deref(class_ref).class.name from school;
更新对象引用
update school set class_ref=((select ref(s) from studentson s where s.class.id=1102)) where id=1; select id,deref(class_ref).sid,deref(class_ref).sname,deref(class_ref).class.id,deref(class_ref).class.name from school;
删除对象引用
delete school where id=1; select id,deref(class_ref).sid,deref(class_ref).sname,deref(class_ref).class.id,deref(class_ref).class.name from school;
相关文章推荐
- android中常用的查询、插入、更新、删除等SQL语句以及SQLite数据类型
- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据
- Android sqlite 数据库查询,插入,删除,更新demo<第3章>---测试验证插入数据
- 2. SQL -- 查询表,创建表,插入数据到表,更新数据,删除数据
- 使用java连接mysql数据库进行数据的查询插入更新及删除
- SQL学习笔记5 组合查询 插入/更新/删除数据 创建和操纵表
- MySQL 入门 之 数据的插入、查询、更新与删除
- 对象表+创建对象表+插入操作+查询操作+更新与删除操作
- Oracle查询优化-04插入、更新与删除数据
- MySQL 5.6学习笔记(查询数据、插入、更新、删除数据)
- 使用SqlDataSource插入、更新以及删除数据
- php daodb插入、更新与删除数据
- Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件
- Asp.Net 2.0 操作mysql 数据基类(读取,删除,插入,更新)
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之四十九:使用SqlDataSource插入、更新以及删除数据
- 【T-MAC学习笔记10之--数据修改之插入数据,更新数据,删除数据】
- php daodb插入、更新与删除数据
- Scott Mitchell 的ASP.NET 2.0数据教程之十六::概述插入、更新和删除数据
- sql存储过程 1查询;2插入;3更新;4删除
- Linq的技术太强大了分享一下(linq to sql 的插入、更新、查询、删除)