Oracle10g基础笔记

Oracle10g的网格计算能力:
1.服务器虚拟(Server Virtualization) Oracle实时应用集群(RAC)可以使一个数据库运行在网格的多个节点上,将多个普通计算机的处理资源集中使用。Oracle在跨计算机分配工作负载的能力方面具有独特的灵活性,因为它是唯一不需要随工作进程一起对数据进行分区和分配的数据库技术。

2.存储虚拟(Storage Virtualization) Oralce10g的自动存储管理(ASM)特性提供了数据库和存储之间的一个虚拟层,这样多个磁盘可以被看做是一个单独的磁盘组,在保证数据库在线的情况下,磁盘可以动态地加载或移除。

3.网格管理 网格计算将多服务器和多磁盘集成在一起,并且对它们实现动态分配,因此独立的资源可以实现自我管理和集中管理就变得非常重要。Oracle10g的网格控制特性提供了将多系统集成管理为一个逻辑组的控制台,可以管理网格中独立地节点,集中维护各组系统的配置和安全设置。

Oracle数据库的逻辑结构包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。

方案是一组数据库对象的集合。在创建用户的时候,会同时生成一个与用户同名的方案,此方案归同名用户所有。

方案对象直接处理数据库数据的逻辑结构,例如表(table)、视图(view)、索引(index)和簇(clusters)等。

表 数据库中最常用的数据存储单元。

视图 虚拟的表,它在物理上并不存在。视图可以把表或其他视图的数据按照一定的条件组合起来,所以也可以把它看成是一个存储的查询。视图并不包括数据,它只是从基表中读取数据。

索引 与表相关联的可选结构。创建索引可以提高读取数据的效率。索引能够显著地提高对表的查询速度,并且可以在很大程度上减少查询时的硬盘I/O操作。

簇 有些表共享公共的列,并经常被同时访问,为了提高数据存取的效率,把这些表在物理上存储在一起,得到的表的组合就是簇。

每个Oracle数据库都由3中类型的文件组成:数据文件、日志文件和控制文件。

共享池保存了最近执行的SQL语句。

事务是包含一组数据库操作的逻辑工作单元。在事务中包含的数据库操作是不可分割的整体,要么一起被执行,要么回滚到执行事务之前的状态。

事务作为一个逻辑工作单元必须四个属性:ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。

原子性:事务应作为一个逻辑工作单元看待,事务中的所有语句要么全部执行,要么全部取消。

一致性:事务中的任何操作都不能破坏数据库的完整性。事务如果能够执行成功,则事务所修改的数据必须遵循数据库中各种约束、规则的要求,所有数据应该处于一致性状态。

隔离性:当多个事务同时执行时,不同的事务互不干扰,独立运行。

持久性:当事务执行成功后,事务对数据库所做的操作结果会永久保持。

分页查询:Oracle的分页一共有三种方式
1.根据rowid来分

2.按分析函数来分

3.按rownum来分

合并查询:union, union all,intersect, minus,多用于数据量较大的数据库,运行速度快

1.union:用于取得两个结果集的并集,会自动去掉结果集中重复行。

2.union all:与union相似,但是它不会取消重复行,而且不会排序。

3.intersect:用于取得两个结果集的交集

4.minus:用于取得两个结果集的差集,只会显示存在第一个集合中,而不存在第二个集合中的数据。

Oracle的函数
sql 函数
字符函数
lower(char):将字符串转化为小写的格式
upper(char):将字符串转化为大写的格式
length(char):返回字符串的长度
substr(char,m,n):取得字符串的字串n代表n个的意思
replace(char1,search_string,replace_string)
instr(char1,char2,[,n[,m]]):取得子串在字符串中的位置

数学函数
数学函数的输入参数和返回值的数据类型都是数字类型的。数学函数包括cos,cosh, exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round.

round(n,[m])用于执行四舍五入,如果省掉m,则四舍五入到整数,如果m是正数,则四舍五入到小数点后的m位后。如果m是负数,则四舍五入到小数点前m位前。

trunc(n,[m])用于截取数字。如果省掉m,就截去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,则截取到小数点的前m位。

floor(n)返回小于或等于n的最大整数
ceil(n)返回大于或等于n的最小整数

日期函数:
1.sysdate:返回系统时间
2.add_months(d,n)
3.last_day(d):返回指定日期所在月份的最后一天

to_char:select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;

to_date:用于将字符串转换成date类型的数据。

数据字典:记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。

在oracle中,约束包括:not null, unique,primary key, foreign key和check五种。

create procedure sp_pro3(spName varchar2, newSal number) is
begin
update emp set sal = newSal where ename = spName;
end;

CallableStatement cs = ct.prepareCall("{call sp_pro3(?,?)}");
cs.setString(1,"SMITH");
cs.setInt(2,10);

函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。而在函数体内必须包含return语句返回的数据。
create function annual_income(name varchar2)
return number is
annual_salary number(7,2)
begin
select sal * 12 + nvl(comm,0) into annual_salary from emp where ename=name;
return annual_salary;
end

包:用于在逻辑上组合过程和函数。
create package sp_package is
  procedure update_sal(name varchar2, newSal number);
  function annual_income(name varchar2) return number;
end;

call sp_package.update_sql('SCOTT',1500);

pl/sql中提供了三种条件分支语句if-then, if-then-else, if-then-elseif - then

循环 : loop开头,end loop结尾
        while....loop开始,end loop 结束

视图与表的区别:
1.表需要占用磁盘空间,视图不需要
2.视图不能添加索引
3.使用视图可以简化复杂查询
4.视图的使用利于提高安全性


TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。   DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:删除内容、释放空间但不删除定义。
DELETE TABLE:删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间。

猜你喜欢

转载自katy1206.iteye.com/blog/2029710