比蜗牛快些 发表于 2007-10-21 21:21

ORACLE要点,刚学的可以学习



<p>Oracle数据库的主要特点:</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->支持多用户、大事务量的事务处理</p>

<p ><!--[if !supportLists]-->2、
<!--[endif]-->在保持数据安全性和完整性方面性能优越</p>

<p ><!--[if !supportLists]-->3、
<!--[endif]-->支持分布式数据处理</p>

<p ><!--[if !supportLists]-->4、
<!--[endif]-->具有可移植性</p>

<p><o:p> </o:p></p>

<p>Oracle数据库物理文件可分为:</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->数据文件:用于存储数据库数据的文件。</p>

<p ><!--[if !supportLists]-->2、
<!--[endif]-->日志文件:用于记录对数据库进行的修改信息。日志文件主要用于在数据库出现故障时实施数据库恢复。</p>

<p ><!--[if !supportLists]-->3、
<!--[endif]-->控制文件:是记录数据库物理结构的二进制文件。</p>

<p><o:p> </o:p></p>

<p>Oracle数据库的逻辑组件:</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->数据库</p>

<p ><!--[if !supportLists]-->2、
<!--[endif]-->表空间</p>

<p ><!--[if !supportLists]-->3、
<!--[endif]-->段</p>

<p ><!--[if !supportLists]-->4、
<!--[endif]-->区</p>

<p ><!--[if !supportLists]-->5、
<!--[endif]-->数据块</p>

<p><o:p> </o:p></p>

<p>Oracle数据库的查询工具</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->SQL Plus</p>

<p ><!--[if !supportLists]-->2、
<!--[endif]-->iSQL Plus:必须启动三个服务(NameTNSListener_监听程序,ServiceSID_数据库实例,HTTPServer_通过IE访问)</p>

<p ><!--[if !supportLists]-->3、
<!--[endif]-->PL/SQL</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>数值数据类型:NUMBER(p,s)s为范围,表示小数点右边数值的位数</p>

<p><o:p> </o:p></p>

<p>TIMESTAMP数据类型:</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->TIMESTAMP:用于存储日期的年,月,日以及时间的小时,分,秒值。</p>

<p ><!--[if !supportLists]-->2、
<!--[endif]-->SYSTIMESTAMP:是返回当前日期,时间和时区。</p>

<p><o:p> </o:p></p>

<p>Oracle数据库中的伪列</p>

<p ><!--[if !supportLists]-->1、
<!--[endif]-->ROWID:能以最快的方式访问表中的一行。能显示表的行是如何存储的。可以做为表中行的唯一标识。</p>

<p><o:p> </o:p></p>

<p>TRUNCATE与DELETE的区别在于:前者快速删除记录并释放空间,不使用事务处理,因些无法回滚,而后者可在执行删除后通过ROLLBACK撤消删除。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>利用现有表创建新表:create
table [表名] as select
* from [某张表] where 1=2;只复制表结构不复制表数据。</p>

<p><o:p> </o:p></p>

<p>连接操作符(||):连接操作符用于将两个或多个字符串合并成一个字符串或者将一个字符串与一个数值合并在一起。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>锁定的概念:锁定是数据库用来控制共享资源并发访问的机制;Oracle数据库提供锁以确保在多用户环境下数据的完整性和一致性。</p>

<p><o:p> </o:p></p>

<p>锁定的优点:一致性、完整性、并发性。</p>

<p><o:p> </o:p></p>

<p>锁有两种级别:行级锁和表级锁。</p>

<p><o:p> </o:p></p>

<p>行级锁:select …….for
update [of  column_list][wait  n|
nowait]</p>

<p>使用FOR UPDATE
WAIT的优点:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->防止无限期的等待被锁定的行</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->允许在应用程序当中对锁的等待时间进行更多的控制。</p>

<p ><!--[if !supportLists]-->3、<!--[endif]-->对于交互式应用程序非常有用,因为这些用户不能等待不确定的时间间隔。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>Oracle数据库提供的分区方法:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->范围分区</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->散列分区</p>

<p ><!--[if !supportLists]-->3、<!--[endif]-->复合分区:复合分区是范围分区和散列分区的结合。</p>

<p ><!--[if !supportLists]-->4、<!--[endif]-->列表分区</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>添加新分区:最高分区的分区边界是MAXVALUE,则应使用SPLIT PAPTITION语句.</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>同义词有以下用途:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->简化SQL语句。</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->隐藏对象的名称和所有者。</p>

<p ><!--[if !supportLists]-->3、<!--[endif]-->为分布式数据库的远程对象提供了位置透明性:只知道同义词名,隐藏掉了真实的表名.</p>

<p ><!--[if !supportLists]-->4、<!--[endif]-->提供对对象公共访问。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>同义词的类型:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->私有同义词:私有同义词只能被当前模式的用户访问,私有同义词名称不可以与当前模式的对象名称相同。要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM系统权限,要在其它用户模式创建私有同义词,用户必须拥有CREATE ANY SYNONYM系统权限。</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->公有同义词:公有同义词可被所有的数据库用户访问,公有同义词可以隐藏基表的身份并降低SQL语句的复杂性。</p>

<p><o:p> </o:p></p>

<p>修改序列:不能修改START
WITH参数。</p>

<p><o:p> </o:p></p>

<p>创建序列时:如果没有CACHE这个参数,系统默缓存为20个序列号,所以MAXVALUE的值必须大于20。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>视图的几个重要的关键字:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->FORCE:如果使用此关键字,则无论基表是否存在,都将创建视图。</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->WITH
CHECK OPTION:此选项指定只能插入或更新视图可以访问的行。</p>

<p ><!--[if !supportLists]-->3、<!--[endif]-->WITH
READ ONLY:此选项确保不能在些视图上执行任何修改操作。</p>

<p><o:p> </o:p></p>

<p>键保留表:在联接视图中,如果视图包含了一个表的主键并且也是这个视图的主键则这个键被保留,这个表称为键保留表。Oracle可以通过些视图向表中插入行。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>索引的类型:</p>

<p ><!--[if !supportLists]-->1、<!--[endif]-->唯一索引</p>

<p ><!--[if !supportLists]-->2、<!--[endif]-->组合索引</p>

<p ><!--[if !supportLists]-->3、<!--[endif]-->反向键索引</p>

<p ><!--[if !supportLists]-->4、<!--[endif]-->位图索引</p>

<p ><!--[if !supportLists]-->5、<!--[endif]-->基于函数的索引</p>

<p><o:p> </o:p></p>

<p>PL/SQL的优点:</p>

<p ><!--[if !supportLists]-->1.   
<!--[endif]-->支持SQL</p>

<p ><!--[if !supportLists]-->2.   
<!--[endif]-->支持面向对象的编程(OOP)</p>

<p ><!--[if !supportLists]-->3.   
<!--[endif]-->更好的性能</p>

<p ><!--[if !supportLists]-->4.   
<!--[endif]-->可移植性</p>

<p ><!--[if !supportLists]-->5.   
<!--[endif]-->与SQL集成</p>

<p ><!--[if !supportLists]-->6.   
<!--[endif]-->安全性</p>

<p><o:p> </o:p></p>

<p>PL/SQL是一种块结构的语言,它将一组语句放在一个块中。块中不允许直接使用DDL语句,但可以通过动态SQL来执行它们。</p>

<p><o:p> </o:p></p>

<p>PL/SQL分为三部分:</p>

<p>1.声明部分:一条语句只能声明一个变量或一个游标。</p>

<p>2.可执行部分:必选</p>

<p>3.异常处理部分</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>Oracle数据库中的属性类型:</p>

<p>1、%TYPE:引用某个变量或数据库列的数据类型来声明变量。</p>

<p>2、%ROWTYPE:提供表中一行的记录类型。</p>

<p><o:p> </o:p></p>

<p>属性类型的优点:</p>

<p>1、不需要知道被引用的列或表的具体数据类型</p>

<p>2、如果更改了被引用对象的数据库定义,那么PL/SQL在运行时变量的数据类型也会随之更改。</p>

<p><o:p> </o:p></p>

<p>Oracle数据库中的控制结构:</p>

<p ><!--[if !supportLists]-->1、            
<!--[endif]-->条件控制结构:IF-THEN、IF-THEN-ELSE和IF-THEN-ELSIF、CASE</p>

<p>2、循环控制结构:LOOP, WHILE , FOR 中的变量根据后面的取值范围来定义类型,不必事先声明。</p>

<p>3、顺序控制结构:GOTO 和NULL</p>

<p><o:p> </o:p></p>

<p>Oracle数据库中的异常(EXCEPTION)必须是出现在语句块的最后部分。</p>

<p><o:p> </o:p></p>

<p>RAISE_APPLICATION_ERROR用于终止当前事务。</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>Oracle数据库中的游标类型:</p>

<p>1、表态游标</p>

<p>2、REF游标</p>

<p><o:p> </o:p></p>

<p>所有的游标属性:</p>

<p>1、%FOUND。</p>

<p>2、%NOTFOUND</p>

<p>3、%ROWCOUNT</p>

<p>4、ISOPEN:隐式游标的这个属性值始终为FALSE。</p>

<p><o:p> </o:p></p>

<p>退出游标的语句:EXIT
WHEN 游标名%NOTFOUND(当没有找到数据时退出)</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>循环游标是简化了显式游标的处理代码</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p>循环游标的特性:</p>

<p>1,在从游标中提取了所有记录之后自动终止</p>

<p>2,提取和处理游标中的每一条记录</p>

<p>3,如果在提取记录之后%NOTFOUND属性返回TRUE,则终止循环。如果未返回行,帽不进入循环。</p>

<p>4,循环游标自动打开,提取和关闭游标</p>

<p><o:p> </o:p></p>

<p>创建引用(REF)游标两个步骤:声明引用游标的类型和声明引用游标类型的游标变量</p>

<p>语法:TYPE  refcur _t
IS  REF  CURSOR;</p>

<p>       Refcur  refcur_t;</p>

<p><o:p> </o:p></p>

<p><o:p> </o:p></p>

<p  align="center"><o:p> </o:p></p>

飙马 发表于 2007-10-22 13:20

感谢热心楼主![em07]

youkuwanhuo 发表于 2007-10-22 17:29

<P>好东西</P>

aipb2007 发表于 2007-10-22 19:45

&lt;--[if !supportLists]--&gt;6.<BR><BR>&lt;--[if !supportLists]--&gt;1、 &lt;--[endif]--&gt;<BR><BR>这些是什么,慢慢看哈,谢了!

比蜗牛快些 发表于 2007-10-26 10:25

回复:(aipb2007)6....

从WORD上拷下来的,没办法将就这看吧。<img>

页: [1]

编程论坛