共享和专用操作模式的工作过程有什么区别?在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,其用户进程数与服务器进程数的比例为1:1因为在用户进程空闲期间,对应的服务器进程始终存在,数据库的效率比较低。
共享服务器操作模式可以实现只运行少量的服务器进程,由少量的服务器进程为大量用户提供服务。
在此模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程Dnnn的调度下位任意数量的用户进程提供服务。
简述oracle的初始化参数文件?答:在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。
简述如何修改初始化参数文件?答:如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。
简述启动数据库时的状态。
答:开启数据库分成4种状态。
SHUTDOWN状态:数据库是关闭的。
NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。
MOUNT状态:会去读取控制文件。
数据库被装载。
OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。
简述数据库的各种关闭方式。
答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。
(2)事务关闭(SHUTDOWN TRANSACTIONAL):等待所有未提交的事务完成后再关闭数据库(3)立即关闭(SHUTDOWN IMMEDIATE):任何未提交的事务均被回退。
(4)终止关闭(SHUTDOWN ABORT):立即终止当前正在执行的SQL语句,任何未提交的事务均不被回退。
简述Oracle数据库的特殊状态?答:静默状态:只有具有管理员权限的用户(SYS、SYSTEM)才能在数据库中执行查询、更新操作和运行PL/SQL程序挂起状态:数据库所有的物理文件(控制文件、数据文件和重做日志文件)的I/O操作都被暂停,这样能够保证数据库在没有任何I/O操作的情况下进行物理备份。
利用这两种数据库状态,数据库管理员可以完成一些特殊的管理和维护操作。
如何设置SQL*Plus的运行环境?答:通过设置环境变量PAUSE为ON来控制SQL*Plus在显示完一页后暂停显示,直到按回车键后才继续显示下一页数据;使用命令SET PAGESIZE来改变默认一页显示的大小;通过设置LINESIZE可以修改系统默认的每行打印80个字符;用NUMFORMAT设置超过10字符的处理值;设置TIMING为ON来显示命令所消耗的系统时间。
如何使用SQL*Plus来设置缓存区?答:设置记事本作为用户的编辑器,就可以使用EDIT命令来执行编辑操作了,还可使用SA VE命令把当前SQL缓存区中的内容保存到指定的文件中,用CLEAR BUFFER命令清除SQL*Plus缓存区中的内容,若要获取通过SA VE保存的内容就要使用GET命令。
如何使用SQL*Plus帮助命令获知某命令的解释信息在不知道具体命令的时候,先用help index 查找出所有的命令,然后使用help [topic] 其中topic为该命令进行查询。
比较内连接和外连接?答:在内连接的检索结果中,都是满足连接条件的数据;外连接的特点是某些不满足条件的数据也可以出现在检索结果中。
外连接的语法和内连接的语法规则相似,区别在于外连接中用LEFT OUTER JION、RIGHT OUTER JOIN或FULL OUTER JOIN关键字,而不使用INNER JOIN关键字。
其中OUTER是可选的。
比较子查询和连接查询连接查询效率高,但是会导致重复数据。
如果确定连接查询不会重复,那么用连接查询会比较好。
子查询效率低,但是可以避免重复数据。
如果要到子查询,尽量使用索引提高效率。
有些情况必须避免重复数据,那就只能用子查询。
但是具体问题还是要具体分析。
如果主表很小,子表很大,并且有索引,是可以使用子查询的,如果主表很大,那就尽量避免子查询了。
显示游标的使用过程CURSORcursor_name [return ruturn_type] ISselect_statement;打开游标:OPENcursor_name;提取游标:FETCH cursor_name INTO variables_list;关闭游标:CLOSE CURSOR_NAME;使用带参数显式游标的4个步骤是1.声明游标:CURSOR cursor_name [(parameter[,parameter]…)] [return ruturn_type]IS select_statement; 2.打开游标:OPEN cursor_name [(parameter[,parameter]…)] ;3.提取游标:FETCH cursor_name INTO variables_list; 4.关闭游标:CLOSE CURSOR_NAME;描述游标的各个属性?答:%FOUND布尔型属性,如果sql语句至少影响到一行数据,则该属性为true,否则为false;%NOTFOUND布尔型属性,与%FOUND相反;%ISOPEN布尔型属性,当游标已经打开时返回true,游标关闭时则为false;%ROWCOUNT数字型属性,返回受sql语句影响的行数。
如何处理用户自定义异常?答:用户自定义异常是通过显示使用RAISE语句来引发的,当引发一个异常时,控制就转到EXCEPTION异常处理部分执行异常处理语句。
步骤如下:定义异常处理;触发异常处理;处理异常。
如何处理非预定义异常?答:在为非预定义异常命名时,使用语句PRAGMA EXCEPTION_INIT为错误号关联一个名称,随后就可以像对待系统预定义异常一样进行处理。
说明使用游标FOR循环如何对游标进行处理?答:游标FOR循环是显式游标的一种快捷使用方式,它使用FOR循环依次读取结果集中的数据。
当FOR循环开始时,游标会自动打开(不需要使用OPEN方法),每循环一次系统自动读取游标当前行的数据(不需要使用FETCH),当退出FOR循环时,游标被自动关闭(不需要使用CLOSE)select语句的基本作用是什么SELECT 语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。
1.检索单表数据,2.过滤数据,3.排序数据,4.多表检索,简述正规表达式Oracle 10g正则表达式提高了SQL灵活性。
有效的解决了数据有效性,重复词的辨认, 无关的空白检测,或者分解多个正则组成的字符串等问题。
Oracle 10g支持正则表达式的四个新函数分别是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和REGEXP_REPLACE。
它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。
简述标量变量和复合变量之间的区别?答:如果变量只能存储一个单独的值,则该变量称为标量变量。
如果变量可以存储多个值,则该变量称为复合类型的变量。
标量变量是本数据类型,而复合变量是自定义记录类型,用户可以根据需要定义其结构,也可以使用由系统自动决定的变量的结构。
简述过程和函数的区别。
答:过程被存储在数据库中,并且存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。
函数必须有返回值,并且可以作为一个表达式的一部分,函数不能作为一个完整的语句使用,函数返回值的数据类型在创建函数时定义。
简述调用过程时传递参数值的三种方式。
答:IN参数,由调用者传入,并且只能够被存储过程读取,它可以接收一个值,但是不能在过程中修改这个值;OUT参数,由存储过程传入值,然后由用户接收参数值,它在调用过程时为空,在过程的执行中将为这参数指定一个值,并在执行结束后返回;IN OUT参数,同时具有IN和OUT参数的特性。
举例说明什么是重载?答:PL/SQL允许重载,也就是在程序包中的过程和函数可以具有相同的名称,但只需它们的特性有所区别。
简述Oracle数据库中触发器的类型及其触发条件DDL触发器在模式中执行DDL语句时执行数据库级触发器在发生打开、关闭、登录和退出数据库等系统事件时执行DML触发器在对表或视图执行DML语句时执行(insert、update、delete)语句级触发器无论受影响的行数是多少,都只执行一次.默认方式行级触发器对DML语句修改的每个行执行一次。
For each row INSTEAD OF触发器用于用户不能直接使用DML语句修改的视图答:行级触发器;语句级触发器;INSTEAD OF触发器;系统事件触发器;用户事件触发器。
简述替代触发器的作用Instead of触发器也称替代触发器,定义instead of触发器后,用户对表的DML操作将不再被执行,而是执行触发器主体中的操作。
Instead of触发器是定义在视图上的,而不是在表上,它是用来替换所使用实际语句的触发器。
因为一个视图通常由多个基本表连接而成,这种视图不允许进行instead、update和delete这样的DML操作。
当为视图编写instead of触发器后,用户对视图的DML操作就不会被执行,而是执行触发器中的PL/SQL语句块,这样就可以通过在instead of触发器中编写适当的代码对构成视图的各个表进行操作。
介绍创建表时常用的数据类型。
答:字符数据类型,数值数据类型,日期时间数据类型,LOB数据类型,ROWID数据类型。
简要介绍Oracle数据表的特性当用户在Oracle中建立模式对象(如表)时,Oracle允许用户规定该对象如何使用磁盘上的存储空间。
如果仅为表指定了表空间,而没有设置存储参数,它将自动采用所属表空间的默认存储参数设置。
然而表空间的默认存储参数设置并不一定对表空间中的每一个表都适合,因此,当表所需的存储参数与表空间的默认存储参数不同时,需要在创建表时显式指定存储参数以替换表空间的默认存储设置。
简要介绍oracle数据表的各类约束及作用。
答:非空约束,就是限制必须为某个列提供值;主键约束,用于惟一地确定表中的每一行数据;惟一性约束,强调所在的列不允许有相同的值;外键约束,外键约束可以使两个表进行关联;检查约束;默认约束大对象数据类型?CLOB类型;字符LOB类型可以用来存储各种字符数据,主要用于存储英语字符;NCLOB类型,国际语言字符LOB类型,使用多字节存储各种语言的字符,主要用于存储非英语字符;BLOB类型,二进制LOB类型主要用于存储二进制数据;BFILE类型,二进制FILE类型,用于存储指向数据库系统外面的文件系统中文件的指针。