首页 oracle开发人员面试题

oracle开发人员面试题

举报
开通vip

oracle开发人员面试题一、基础概念歹0举几种表连接方式Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin?ORACLE8i9i表连接方法。一般的相等连接:select*froma,bwhere=;这个就届于内连接。对于外连接:Oracle中可以使用“(+)来表示,9i可以使用LEFT/RIGHT/FULLOUTERJOINLEFTOUTERJOIN^外关联SELECT,,FROMemployeeseLEFTOUTE...

oracle开发人员面试题
一、基础概念歹0举几种表连接方式Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin?ORACLE8i9i表连接方法。一般的相等连接:select*froma,bwhere=;这个就届于内连接。对于外连接:Oracle中可以使用“(+)来表示,9i可以使用LEFT/RIGHT/FULLOUTERJOINLEFTOUTERJOIN^外关联SELECT,,FROMemployeeseLEFTOUTERJOINdepartmentsdON=;等价于SELECT,,FROMemployeese,departmentsdWHERE=(+)结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。RIGHTOUTERJOIN&外关联SELECT,,FROMemployeeseRIGHTOUTERJOINdepartmentsdON等价于SELECT,,FROMemployeese,departmentsdWHERE(+)=结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。FULLOUTERJO阮夕卜关联SELECT,,FROMemployeeseFULLOUTERJOINdepartmentsdON=;结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。ORACLE8是不直接支持完全外连接的语法,也就是说不能在左右两个表上同时加上(+),下面是在ORACLE8可以参考的完全外连接语法select,fromtable1t1,tablet2where=(+)unionselect,fromtable1t1,tablet2where(+)=连接类型定义图示例子内连接只连接匹配的行select,fromAjoinBon=;左外连接包含左边表的全部行(不管右边的表中是否存在与它们匹配的行)以及右边表中全部匹配的行select,fromAleftjoinBon=;右外连接包含右边表的全部行(不管左边的表中是否存在与它们匹配的行)以及左边表中全部匹配的行select,fromArightjoinBon=;全外连接包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行select,fromAfulljoinBon=;(theta)连接使用等值以外的条件来匹配左、右两个表中的行select,fromAjoinBon!=;交义连接生成笛卡尔积一一它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配select,fromA,B;不借助第三方工具,怎样查看sql的执行 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 使用ExplainPlan查询PLAN_TABLE;EXPLAINPLANSETSTATEMENT_ID'=QUERY'1FORSELECT*FROMaWHEREaa=1;SELECToperation,options,object_name,object_type,ID,parent_idFROMplan_tableWHERESTATEMENT_ID='QUERY'1ORDERBYID;SQLPLU驴的SETTRAC的可看到ExecutionPlanStatisticsSETAUTOTRACEON;如何使用CBO,CBgRULE的区别IF初始化参数OPTIMIZER_MODE=CHOOSETHENDEFAULT)IF做过表分析THEN优化器Optimizer=CBO(COST);临效*/ELSE优化器Optimizer=RBO(RULE);商效*/ENDIF;ENDIF;区别:RBO根据规则选择最佳执行路径来运行查询。CBO根据表统计找到最低成本的访问数据的方法确定执行计划。使用CBO需要注意:I)需要经常对表进行ANALYZ命令进行分析统计;II)需要稳定执行计划;III)需要使用提示(Hint);使用RULER要注意:I)选择最有效率的表名顺序II)优化SQL的写法;在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBQRBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目,然后选择最佳级别(最少的数量)的执行路径来运行查询。CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。如何定位重要(消耗资源多)的SQL使用CPU多的用户sessionSELECT,spid,status,SUBSTR,1,40)prog,,,osuser,VALUE/60/100VALUEFROMv$sessiona,v$processb,v$sesstatcWHERE#=12AND=AND=ORDERBYVALUEDESC;selectsql_textfromv$sqlwheredisk_reads>1000or(executions>0andbuffer_gets/executions>30000);如何跟踪某个session的SQL利用TRACE跟踪ALTERSESSIONSETSQLTRACEON;COLUMNSQLformata200;SELECTmachine,sql_textSQLFROMv$sqltexta,v$sessionbWHEREaddress=sql_addressANDmachine='&A'ORDERBYhash_value,piece;exec(sid,serial#,&sql_trace);selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1);exec(&sid,&serial#,&event_10046,&level_12,");SQL调整最关注的是什么检查系统的I/O问题sar—d能检查整个系统的iostat(IOstatistics)查看该SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk))说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)索引有B-TREEBITCLUSTE簿类型。ORACL收用了一个复杂的自平衡B-tree结构;通常来说,在表上建立恰当的索引,查询时会改进查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。有索引且查询条件能使用索引时,数据库会先度取索引,根据索引内容和查询条件,查询出ROWID,再根据ROWID。出需要的数据。由于索引内容通常比全表内容要少很多,因此通过先读索引,能减少I/O,提高查询性能。b-treeindex/bitmapindex/functionindex/patitionalindex(local/global)索弓I通常能提高select/update/delete的性能,会降低insert的速度,使用索引查询一定能提高查询的性能吗为什么通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价.索引需要空间来存储,也需要定期维护,每当有记录在表中增减或索引列被修改时,索引本身也会被修改.这意味着每条记录的INSERT,DELETE,UPDA»此多付出4,5次的磁盘I/O.因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEXRANGESCAN用于两种情况:基于一个范围的检索,一般查询返回结果集小于表中记录数的30%宜采用;基于非唯一性索引的检索索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能,只能说是用错了索引,或者讲是场合不同绑定变量是什么绑定变量有什么优缺点?绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果。优点:使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源。提高了编程效率和可靠性。减少访问数据库的次数,就能实际上减少ORACLE勺工作量。缺点:经常需要使用动态SQL的写法,由于参数的不同,可能SQL的执行效率不同;绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bindvalue在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool缺点是不能使用histogram,sql优化比较困难如何稳定(固定)执行计划可以在SQL语句中指定执行计划。使用HINTS;query_rewrite_enabled=truestar_transformation_enabled=trueoptimizer_features_enable=创建并使用storedoutline和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么SORT_AREA_SIZE进行排序操作时,如果排序的内容太多,内存里不能全部放下,则需要进行外部排序,此时需要利用临时表空间来存放排序的中间结果。8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存,如果排序操作不能在sort_area_size巾完成,^生用到temp表空间9i中如果workarea_size_policy=auto时,排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disksort;如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定,在执行orderby/groupby/distinct/union/createindex/indexrebuild/minus等操作H寸,如果在pga佥sort_area_size中不能完成,排序将在临时表空间进行(disksort),临时表空间主要作用就是完成系统中的disksort.存在表T(a,b,c,d)安根据字段c排序后取第21—3。条记录显示,请给出sqlSELECT*FROM(SELECTROWNUMASrow_num,tmp_tab.*FROM(SELECTa,b,c,dFROMTORDERBYc)tmp_tabWHEREROWNUM<=30)WHERErow_num>=20ORDERBYrow_num;createtablet(anumber(,bnumber(,cnumber(,dnumber();beginforiin1..300loopinsertintotvalues(mod(i,2),i/2,(1,300),i/4);endloop;end;/select*from(selectc.*,rownumasrnfrom(select*fromtorderbycdesc)c)wherernbetween21and30;/select*from(select*fromtestorderbycdesc)xwhererownum<30minusselect*from(select*fromtestorderbycdesc)ywhererownum<20orderby3desc相比之minus性能较差二:数据库基本概念类Pctusedandpctfree表示什么含义有什么作用pctused与pctfree控制数据块是否出现在freelist中,pctfree控制数据块中保留用于update的空间,当数据块中的freespace小于pctfree设置的空间时,该数据块从freelist中去掉,当块由于dml操作freespace大于pct_used设置的空间时,该数据库块将被添加在freelist链表中。简单描述tablespace/segment/extent/block之间的关系tablespace:一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间;每一个表空间可能包含一个或多个Segment;Segments:Segment在tablespace中为特定逻辑存储结构分配的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和临时段。Extents:一个extent由一系歹0连续的Oracleblocks组成.ORACLE^通过extent来给segment分配空间。DataBlocksOracle数据库最小的I/O存储单位,一个datablock对应一个或多个分配给datafile的操作系统块。table仓U建时,默认仓U建了——个datasegment,每个datasegment含有minextents指定的extents数,每个extent据据表空间的存储参数分配一定数量的blocks3描述tablespace和datafile之间的关系一个表空间可包含一个或多个数据文件。表空间利用增加或扩展数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。一个datafile只能届于一个表空间;一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内,table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。4本地管理表空间和字典管理表空间的特点,ASSM有什么特点本地管理表空间:(9i默认)空闲块列表存储在表空间的数据文件头。特点:减少数据字典表的竞争,当分配和收缩空间时会产生回滚,不需要合并。字典管理表空间:(8i默认)空闲块列表存储在数据库中的字典表里.特点:片由数据字典管理,可能造成字典表的争用。存储在表空间的每一个段都会有不同的存储字句,需要合并相邻的块;本地管理表空间(LocallyManagedTablespace®称LMT)8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用。字典管理表空间(Dictionary-ManagedTablespace^称DMT)8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。动段空间管理(ASSM,它首次出现在Oracle920里有了ASSM链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块(freeblock),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫BitmapManagedSegments(BMB段)。5回滚段的作用是什么回滚段用于保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复和Rollback时使用。一个事务只能使用一个回滚段。事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK时,ORACLE^会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在und。表空间中,ORACLE务在下次打开数据库时利用回滚来恢复未提交的数据。读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)当ORACLE^行SELECT句时,ORACLE^照当前的系统改变号(SYSTEMCHANGENUMBER-SCN来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE务利用回滚段的数据前影像来构造一个读一致性视图6日志的作用是什么日志文件(LogFiQ记录所有对数据库数据的修改,主要是保护数据库以防止故障,以及恢复数据时使用。其特点如下:a)每一个数据库至少包含两个日志文件组。每个日志文件组至少包含两个日志文件成员。b)日志文件组以循环方式进行写操作。c)每一个日志文件成员对应一个物理文件。记录数据库事务,最大限度地保证数据的一致性与安全性重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。7SGA主要有那些部分,主要作用是什么系统全局区(SGA:是ORACLED实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。SGA±要包括:a)共享池(sharedpool):用来存储最近执行的SQL语句和最近使用的数据字典的数据。数据缓冲区(databasebuffercache)用来存储最近从数据文件中读写过的数据。重作日志缓冲区(redologbuffer):用来记录服务或后台进程对数据库的操作。另外在SGA中还有两个可选的内存结构:Javapool:用来存储Java代码。Largepool:用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。GA:db_cache/shared_pool/large_pool/java_pooldb_cache:数据库缓存(BlockBuffer)对于Oracle数据库的运转和性能起着非常关延的作用,它占据Oracle数据库SGA(系统共享内存区)的主要部分。Oracle数据库通过使用LRU算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问.shared_pool:共享池的大小对于Oracle性能来说都是很重要的。共享池中保存数据字项高速缓冲和完全解析或编译的的PL/SQL块和SQL语句及控制结构large_pool:使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器java_pool:为javaprocedure预备的内存区域,如果没有使用javaproc,java_pool不展须的-8Oracle系统进程主要有哪些,作用是什么数据写进程(DBWR)负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程(LGWR)将重做日志缓冲区中的更改写入在线重做日志文件系统监控(SMON):检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控(PMON):负责在一个Oracle进程失败时活理资源检查点进程(CKPT)负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。归档进程(ARCH)在每次日志切换时把已满的日志组进行备份或归档恢复进程(RECO):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;作业调度器(CJQ):负责将调度与执行系统中已定义好的job,完成一些预定义的工作.三:备份恢复类1备份如何分类逻辑备份:exp/imp指定表的逻辑备份物理备份:热备份:altertablespacebegin/endbackup;冷备份:脱机备份(databaseshutdown)RMAN备份fullbackup/incrementalbackup(累积/差异)物理备份物理备份是最主要的备份方式。用于保证数据库在最小的数据库丢失或没有数据丢失的情况下得到恢复。冷物理冷物理备份提供了最简单和最直接的方法保护数据库因物理损坏丢失。建议在以下几种情况中使用。对一个已经存在大最数据量的数据库,在晚间数据库可以关闭,此时应用冷物理备份。对需对数据库服务器进行升级,(如更换硬盘),此时需要备份数据库信息,并在新的硬盘中恢复这些数据信息,建议采用冷物理备份。热物理主要是指备份过程在数据库打开并且用户可以使用的情况下进行。需要执行热物理备份的情况有:由于数据库性质要求不问断工作,因而此时只能采用热物理备份。由于备份的要求的时间过长,而数据库只能短时间关闭时。逻辑备份(EXP/IMP)逻辑备份用于实现数据库对象的恢复。但不是基于时间点可完全恢复的备份策略。只能作为联机备份和脱机备份的一种补充。完全逻辑备份完全逻辑备份是将整个数据库导出到一个数据库的格式文件中,该文件可以在不同的数据库版本、操作系统和硬件平台之间进行移植。指定表的逻辑备份通过备份工具,可以将指定的数据库表备份出来,这可以避免完全逻辑备份所带来的时间和财力上的浪费。2归档是什么含义关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archivedredolog)。其对数据库备份和恢复有下歹U用处:数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。数据库可运行在两种不同方式下:NOARCHIVELO因式或ARCHIVELOGJ式数据库在NOARCHIVELO⑥式下使用时,不能进行在线日志的归档,数据库在ARCHIVELOG*式下运行,可实施在线日志的归档归档是归档当前的联机redo日志文件。SVRMGR>altersystemarchivelogcurrent;数据库只有运行在ARCHIVELOG!式下,并且能够进行自动归档,才可以进行联机备份。有了联机备份才有可能进行完全恢复。3如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复9i新增的FLASHBACK该可以;Logminer应该可以找出DML。有完善的归档和备份,先归档当前数据,然后可以先恢复到删除的时间点之前,把DROP的表导出来,然后再恢复到最后归档时间;手工拷贝回所有备份的数据文件Sql〉startupmount;sql>alterdatabaserecoverautomaticuntiltime-08-04:10230040';sql>alterdatabaseopenresetlogs;rman是什么,有何特点RMAN(RecoveryManage混DBA的一个重要工具,用于备份、还原和恢复oracle数据库,RMAN可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMANDLINE^式、GUI方式(集成在OEM中的备份管理器)、API方式(用于集成到第三方的备份软件中)。具有如下特点:1)功能类似物理备份,但比物理备份强大N倍;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recoverycatalog中)7)可以做坏块监测standby的特点备用数据库(standbydatabase:ORACLE隹出的一种高可用性(HIGHAVAILABLE)数据库 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份,可以实现快速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用服务器。9i中的三种数据保护模式分别是:1)、MAXIMIZEPROTECTION最大数据保护与无数据分歧,LGWR将同时传送到总用节点,在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。、MAXIMIZEAVAILABILITY无数据丢失模式,允许数据分歧,允许异步传送。正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。、MAXIMIZEPERFORMANC眨种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,无数据同步检查,可能丢失数据,但是能获得主节点的最大性能。9i在配置DATAGUARD勺时候默认就是MAXIMIZEPERFORMANCE6对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 备份策略数据库比较大逻辑备份没什么必要,每天归档5G,每周三/周六自动归档10G,每月RMAN归档全库。应该有standby。rman/每月一号level0每周末/周三level1其它每天level2四:系统管理类对于一个存在系统性能的系统,说出你的诊断处理思路做statspack收集系统相关信息了解系统大致情况/确定是否存在参数设置不合适的地方/查看top5event/查看topsql等查v$system_event/v$session_event/v$session_wait从v$system_event开始,确定需要什么资源(dbfilesequentialread)等,深入研究v$session_event确定等待事件涉及的会话,从v$session_wait确定详细的资源争用情况(p1-p3的值:file_id/block_id/blocks等)通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL列举几种诊断IO、CPU性能状况的方法topuptimevmstatiostatstatspacksql_trace/tkprof查v$system_event/v$session_event/v$session_wait查v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)或者第三方的监视工具,TOAD就不错。对statspack有何认识认识不深。仅限了解。StapSpac说Oracle公司提供的一个收集数据库运行性能指标的软件包。可以做数据库健康检查 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。StapSpac说Oracle公司提供的一个收集数据库运行性能指标的软件包,该软件包从8i起,在9i、10g都有显着的增强该软件包的辅助表(存储相关参数与收集的性能指标的表)由最初的25个增长到43个收集级别参数由原来的3个(0、5、10)增加到5个(0、5、6、7、10)通过分析收集的性能指标,数据库管理员可以详细地了解数据库目前的运行情况,对数据库实例、等待事件、SQL等进行优化调整利用statspack收集的snapshot,可以统计制作数据库的各种性能指标的统计趋势图表。如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响可以先表分析一下,然后测试创建索引前后对应用的性能影响;需要考虑的是该索引列不经常更新,不是有很多重复值的情况时,在大表中使用索引特别有效.创建的索引可以跟数据表分不同表空间存储。在系统比较空闲时nologging选项(如果有dataguard则不可以使用nologging)大的sort_ared_size或pga_aggregate_target较大对raid10和raid5有何认识RAID10或称RAID什0)与RAID眼1不同,它是用硬盘驱动器先组成RAID1阵列,然后在RAID1阵列之间再组成RAID0阵列。RAID10模式同RAID0+1模式一样具有良好的数据传输性能,但却比RAID0+1具有更高的可靠性。RAID10阵列的实际容量为MABPartialFunctionaldependency:C>A,DE>BHopethathelps!Whatisa“trigger”Atriggerisadatabaseobjectdirectlyassociatedwithaparticulartable.Itfireswheneveraspecificstatement/typeofstatementisissuedagainstthattable.Thetypesofstatementsareinsert,update,deleteandquerystatements.Basically,triggerisasetofSQLstatementsthatexecuteinresponsetoadatamodification/retrievaleventonatable.Otherthantabletriggerstherearealsoschemaanddatabasetriggers.Thesecanbemadetofirewhennewobjectsarecreated,whenauserlogsin,whenthedatabaseshutdownetc.Tableleveltriggerscanbeclassifiedintorowandstatementleveltriggersandthosecanbefurtherbrokendownintobeforeandaftertriggers.Beforetriggerscanmodifydata.Whatis“indexcovering”ofaqueryAnonclusteredindexthatincludes(orcovers)allcolumnsusedinaqueryiscalledacoveringindex.WhenSQLservercanuseanonclusteredindextoresolvethequery,itwillprefertoscantheindexratherthanthetable,whichtypicallytakesfewerdatapages.Ifyourqueryusesonlycolumnsincludedintheindex,thenSQLservermayscanthisindextoproducethedesiredoutput.WhatisaSQLviewViewisaprecompliedSQLquerywhichisusedtoselectdatafromoneormoretables.Aviewislikeatablebutitdoesn'tphysicallytakeanyspace.Viewisagoodwaytopresentdatainaparticularformatifyouusethatqueryquiteoften.Viewcanalsobeusedtorestrictusersfromaccessingthetablesdirectly.Aviewotherwiseknownasavirtualtableisamerewindowoverthebasetablesinthedatabase.Thishelpsusgainacoupleofadvantages:InherentsecurityexposingonlythedatathatisneededtobeshowntotheenduserViewsareupdateablebasedoncertainconditions.Forexample,updatescanonlybedirectedtooneunderlyingtableoftheview.Aftermodificationiftherowsorcolumnsdon'tcomplywiththeconditionsthattheviewwascreatedwith,thoserowsdisappearfromtheview.YoucouldusetheCHECKOPTIONwiththeviewdefinition,tomakesurethatanyupdatestomaketherowsinvalidwillnotbepermittedtorun.Viewsarenotmaterialized(givenaphysicalstructure)inadatabase.Eachtimeaviewisqueriedthedefinitionstoredinthedatabaseisrunagainstthebasetablestoretrievethedata.Oneexceptiontothisistocreateaclusteredindexontheviewtomakeitpersistentinthedatabase.Onceyoucreateaclusteredindexontheview,youcancreateanynumberofnon-clusteredindexesontheview.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个届性,称为ACID惊子性、一致性、隔离性和持久性)届性,只有这样才能成为一个事务:原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可申行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。游标的作用如何知道游标已经到了最后?游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS以判断是否到了最后,通常此变量不等于0表示出错或到了最后。触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。SQLServe涝用测试题(1)问题描述:为管理岗位业务培训信息,建立3个表:S(S#,SN,SD,SA)S#,SN,SD,SAU代表学号、学员姓名、所届单位、学员年龄C(C#,CN)C#,CNfr别代表课程编号、课程名称SC(S#,C#,G)S#,C#分别代表学号、所选修的课程编号、学习成绩使用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 SQL嵌套语句查询选修课程名称为税收基础’的学员学号和姓名须现代码:SELECTSN,SDFROMSWHERE[S#]IN(SELECT[S#]FROMC,SCWHEREC.[C#]=SC.[C#]ANDCN=N'')使用标准SQL嵌套语句查询选修课程编号为'C2学员姓名和所届单位须现代码:SELECT,FROMS,SCWHERES.[S#]=SC.[S#]ANDSC.[C#]='C2'使用标准SQL嵌套语句查询不选修课程编号为’施学员姓名和所届单位须现代码:SELECTSN,SDFROMSWHERE[S#]NOTIN(SELECT[S#]FROMSCWHERE[C#]='C5')使用标准SQL嵌套语句查询选修全部课程的学员姓名和所届单位须现代码:SELECTSN,SDFROMSWHERE[S#]IN(SELECT[S#]FROMSCRIGHTJOINCONSC.[C#]=C.[C#]GROUPBY[S#]HAVINGCOUNT(*)=COUNT([S#]))查询选修了课程的学员人数须现代码:SELECTS员人数=COUNT(DISTINCT[S#])FROMSC查询选修课程超过5门的学员学号和所届单位须现代码:SELECTSN,SDFROMSWHERE[S#]IN(SELECT[S#]FROMSCGROUPBY[S#]HAVINGCOUNT(DISTINCT[C#])>5)SQLServe涝用测试题(2)问题描述:已知关系模式:S(SNO,SNAME字生关系。SNO为学号,SNAME为姓名C(CNO,CNAME,CTEACHER§关系。CNO为课程号,CNAME为课程名,CTEACHEF任任课教师SC(SNO,CNO,SCGRADE课关系。SCGRAD初成绩找出没有选修过李明”老师讲授课程的所有学生姓名须现代码:SELECTSNAMEFROMSWHERENOTEXISTS(SELECT*FROMSC,CWHERE=ANDCNAME='AND=列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩须现代码:SELECT,,AVG_SCGRADE=AVGFROMS,SC,(SELECTSNOFROMSCWHERESCGRADE<60GROUPBYSNOHAVINGCOUNT(DISTINCTCNO)>=2)AWHERE=AND=GROUPBY,列出既学过“传课程,乂学过“2t课程的所有学生姓名须现代码:SELECT,FROMS,(SELECTFROMSC,CWHERE=ANDIN('1','2')GROUPBYSNOHAVINGCOUNT(DISTINCTCNO)=2)SCWHERE=列出“传课成绩比“2t同学该门课成绩高的所有学生的学号须现代码:SELECT,FROMS,(SELECTFROMSCSC1,CC1,SCSC2,CC2WHERE=AND'=1'AND=AND=2'AND>)SCWHERE=列出“传课成绩比“2t课成绩高的所有学生的学号及其“传课和“册课的成绩须现代码:SELECT,,SC.所课成绩],SC.[2号课成绩]FROMS,(SELECT,[#课成绩]=,[2号课成绩]=FROMSCSC1,CC1,SCSC2,CC2WHERE=AND='1’AND=AND=2'AND>)SCWHERE=Question1:CanyouuseabatchSQLorstoreproceduretocalculatingtheNumberofDaysinaMonth找出当月的天数selectdatepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate())asvarchar)+-'+cast(month(getdate())asvarchar)+-01'asdatetime))))Question^:CanyouuseaSQLstatementtocalculatingit!HowcanIprint“10to20"forbooksthatsellforbetween$10andr$20own”forbookswhosepriceisnull,and“other”forallotherpricesselectbookid,bookname,price=casewhenpriceisnullthen'unknown"whenpricebetween10and20then'10to20'elsepriceendfrombooksQuestion3:CanyouuseaSQLstatementtofindingduplicatevalues!HowcanIfindauthorswiththesamelastname?Youcanusethetableauthorsindatatabasepubs.Iwanttogettheresultasbelow:Output:au_lnamenumber_dupsRinger2(1row(s)affected)Answer3selectau_lname,number_dups=count(1)fromauthorsgroupbyau_lnameQuestion4:Canyoucreateacross-tabreportinmySQLServer!HowcanIgetthereportaboutsalequalityforeachstoreandeachquarterandthetotalsalequalityforeachquarteratyear1993?Youcanusethetablesalesandstoresindatatabasepubs.TableSalesrecordallsaledetailitemforeachstore.Columnstore_idistheidofeachstore,ord_dateistheorderdateofeachsaleitem,andcolumnqtyisthe
本文档为【oracle开发人员面试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:doc
大小:43KB
软件:Word
页数:16
分类:
上传时间:2019-09-18
浏览量:0