我们知道现在大部分流行的编程语言都是面向对象的.面向对象里一切皆是对象.也就是说一个个的class.在Oracle数据中其实也用到这种思想.我们大部分时候创建一个表时指定每一列的类型都是系统默认的类型.
但是有时候为了更加直观,方便我们也可以自定义一些类型,然后建表时指定一列为自定义的类型.这样的表叫对象表
例如我创建一个部门信息表,包括员工姓名,年龄,部门.一般情况都是这样建表:
CREATE TABLE deptInfo(ename varchar2(20),home ,age int, dept varchar2(20));
但我们也可以创建一个对象person.它包括姓名和年龄.然后我们建表时指定这个表某列类型为这个自定义类型.
1.先创建一个自定义对象类型,
CREATE TYPE person AS OBJECT(ename varchar2(20), age int ); --除了在对象中创建几个不同类型的成员外,还可以创建成员函数,等会再给示例
对象类型创建好后也像创建表一样会被保存在数据库中.以后我们就可以像使char,int这样的类型一样使用它.我们可以通过数据字典查找相关信息:
SELECT * FROM user_types; --类型名字如果object,collection
SELECT * FROM user_types_attrs; --类型的属性(成员)
SELECT * FROM user_type_methods; --类型的方法(成员函数)
2.创建一个使用到对象的表
CREATE TABLE deptInfo(staff person,dept varchar2(20));
3.插入值到对象表中:
INSERT INTO deptInfo VALUES(person('arwen',18), 'mgr');--插入staff那一列值时有点像插入一个构造函数一样.type_name(para1,para2...)
4.查询对象表:
比如要查询员工的名字:
SELECT d.staff.ename FROM deptInfo d;--注意这里一定要给表指定一个别名d.如果像这样SELECT d.staff.ename FROM deptInfo;会出错
或者查找所有信息:SELECT * FROM deptInfo;
5.更新对象表:
UPDATE deptInfo SET dept='dev' WHERE d.staff.ename='arwen';
创建一个带方法的对象:
1.创建对象类型
CREATE OR REPLACE TYPEmoney AS OBJECT(
sal int,
bonus int,
MEMBER FUNCTION sandb RETURN int);
这和PACKAGE类似,上面就像头一样,下面还得有对象体.
CREATE OR REPLACE TYPE BODYmoney AS
MEMBER FUNCTIONsandb RETURN int IS
BEGIN
RETURN (sal + bonus);
END;
END;
2.创建对象表:
CREATE TABLE company(ename varchar2(20), pain money);
INSERT INTO company VALUES('arwen', money(200,100));
SELECT c.pain.sandb() FROM company c; --结果为300;
补充:怎么使用数组array(跟其他编程语言中的数组基本一样):
CREATE TYPE qq AS ARRAY(2) OF int; --qq为整数数组,大小为2
CREATE TABLE tecent (vname varchar(30), qqnumber qq);
INSERT INTO tecent VALUES('mygod',qq(1314520, 574752539));
分享到:
相关推荐
Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,主要面向中小企业 中小型企业 PostgreSQL 号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能也很...
4、在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。 5、在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。 6、职工信息包括职工号、...
技术:java、jsp、struts、spring、hibernate 数据库:oracle 集成开发工具:eclipse ...再使用Hibernate,封装了JDBC,使得只需要操纵数据对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想。
软件开发思想从面向过程到OOP面向对象,再到AOP面向方面,每一次新思想的提出都能够降低对程序员的要求,加快软件开发的进度。该框架在实现的过程中提出一个新的概念IOP“面向项目的开发”。在这个思想的指导下,...
一款为 C# 数据库程序员设计的自动代码生成器,生成的代码基于基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想,采用 Model + DAL + BLL + Web 的...
思想总结:通过编写此程序发现了自己在代码和控件运用上的不熟练,需多加练习,以后一定要做出架构更好,功能更完善的程序。 以下是本实例程序的架构说明: SuperMarket 主程序代码 表示层,负责应用程序的表现形式...
基础部分,包括Java编程语言的核心概念、语法规范、面向对象编程思想等内容,为读者打下扎实的编程基础。而在多线程编程方面,宝典系统地介绍了Java中线程的创建、同步、锁机制等重要知识点,帮助读者理解并掌握多...
软件开发思想从面向过程到OOP面向对象,再到AOP面向方面,每一次新思想的提出都能够降低对程序员的要求,加快软件开发的进度。该框架在实现的过程中提出一个新的概念IOP“面向项目的开发”。在这个思想的指导下,...
有无面向对象的设计平台——面向对象的设计思想十 分接近人类的逻辑思维方式,便于开发和维护。对多媒体数据类型的支持——多媒体数据 需求是今后发展的趋势,支持多媒体数据类型的数据库管理系统必将减少应用程序的...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和...
1、JAVA基础扎实,良好的面向对象编程思想;熟练使用Tomcat、Nginx等应用服务器; 2、熟练使用Spring, SpringMVC, Hibernate等流行的开发框架,理解框架的设计原则和内部机制; 3、熟悉微服务框架,对SringBoot、...
应用面向对象、三层架构、软件工程思想,本文实现了基 于 web的文档管理系统,它包括管理员的权限管理、文档管理、文件夹 管理、用户管理、密码管理和一般用户对文档的查询查看管理等子系统。 系统的设计与实现,...
空间数据库管理系统 空间数据库管理系统 本节 内容 文件与关系数据库混合管理 5.4.1 全关系型空间数据库管理 5.4.2 对象关系数据库管理 5.4.3 面向对象空间数据库管理 5.4.4 空间数据管理 5.4 文件与关系数据库混合...
求职简历:1. 熟练运用Java编程语言, 熟悉J2EE技术体系架构,掌握面向对象编程思想,对设计模式有一定的了解,有良好编码规范。 2. 熟练运用Servlet、Struts、Hibernate、Spring、Springmvc、Mybaits、SSH框架等技术...
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式;设计模式;单例模式;工厂模式;代理模式;模板方法模式;责任链模式等。 3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其...
<br>第一阶段教学内容安排(200课时) 课程名称 课程内容 培训目的 C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、...
<br>第一阶段教学内容安排(200课时) 课程名称 课程内容 培训目的 C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、...