Oracle数据库系统是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了oracle知识,便能在各种类型的机器上使用它。
Oracle数据库最新版本为OracleDatabase12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如OracleMultitenant可快速整合多个数据库,而AutomaticDataOptimization和HeatMap能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台。
Oracle10g/11g/12c目前支持以下的操作系统和硬件:
·AppleMacOSXServer:PowerPC
·HPHP-UX:PA-RISC,Itanium
·HPTru64UNIX:Alpha
·HPOpenVMS:Alpha,Itanium
·IBMAIX5L:IBMPOWER
·IBMz/OS:zSeries
·Linux:x86,x86-64,PowerPC,zSeries,Itanium
·MicrosoftWindows:x86,x86-64,Itanium
·SunSolaris:SPARC,x86,x86-64
在了解了ORACLE数据库后,我们有必要对ORACLE和SybaseSQLServer的比较,Oracle采用的是并行服务器模式,而SybaseSQLServer采用的是虚拟服务器模式,它没有将一个查询分解成多个子查询,再在不同的CPU上同时执行这些子查询。我们可以说在对称多处理方面Oracle的性能优于Sybase的性能。业务量往往在系统运行后不断提高,如果数据库数量达到GB以上时,我们在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,还有就是增加服务器数目。基于此,如果我们是提高单台服务器的性能,选择Oracle数据库较好,因为它们能在对称多CPU的系统上提供并行处理。相反,由于Sybase的导航服务器使网上的所有用户都注册到导航服务器并通过导航服务提出数据访问请求,导航服务器则将用户的请求分解,然后自动导向由它所控制的多台SQLServer,从而在分散数据的基础上提供并行处理能力,我们可以选择它。这些都是在其他条件和环境相同的情况下比较的,这样才有可比性。在数据的分布更新方面,Oracle采用的是基于服务器的自动的2PC(两阶段提交),而Sybase采用的则是基于客户机DB-Library或CT-Library的可编程的2PC,因此我们在选择数据库方面,必须根据需要进行选择,比如,从事的社会保险软件的开发,考虑到数据量大,并发操作比较多,实时性要求高,我们后台基本采取的是ORACLE数据库。Oracle服务器由Oracle数据库和Oracle实例组成。Oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成。
一、oracle基本常用的数据类型
varchar(长度)字符串
char(长度)字符
number(x,y)x表示总位数y表示保留小数点后几位数eg面试题:number(5,3)最大的数是99.
decimal()数字
longintinteger整数
date日期
timestamp日期
clobblob特殊文本二进制
二、DLL操作
create
创建表的前提是:1、具备创建表的条件2、有可用的存储空间
创建表的语法是:
createtable表名(column1数据类型,column2数据类型……);
droptable表名;
表中的所有数据都将删除、此前未完成的事务都将被提交、所有相关的索引被删除、DLL语句,一经执行,不可撤销。
alter
对表添加字段
altertable表名add(column1数据类型,column2数据类型……);
对表删除字段
altertable表名drop(column1,column2……);
对表现有字段进行修改
altertable表名modify(column1数据类型,column2数据类型……);
truncatetable表名;
清空表中所有记录、释放表空间、DLL语句,一经执行,不可撤销。
三、DML操作
select
select*/column1,column2……from表名where……;
deletefrom表名where条件……
update表名setcolumn=‘字段’where条件……
insertinto表名(column1,column2……)values(值1,值2……);
四、事务控制语言