中南大学软件学院Oracle复习.docx
- 文档编号:2474423
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:13
- 大小:79.34KB
中南大学软件学院Oracle复习.docx
《中南大学软件学院Oracle复习.docx》由会员分享,可在线阅读,更多相关《中南大学软件学院Oracle复习.docx(13页珍藏版)》请在冰豆网上搜索。
中南大学软件学院Oracle复习
1、Oracle系统进程有哪些?
PMON进程监控
SMON系统监控
DBWR数据写进程
LGWR日志写进程
CKPT检查点进程
2、数据库由称为表空间的逻辑单位组成
表空间中存储在数据库空间分配中的逻辑单位称为段
(数据段、索引段、回滚段、临时段)
扩展区的集合由一定数目的相邻数据块和段组成
3、DDL、DML、Query
4、解析、优化、行资源生成、执行
硬解析、软解析
5、启动服务器:
a)Nomount读初始化参数文件,启动实例
b)Mount打开控制文件
c)Open打开数据文件、日志文件
改变数据库状态NomountMount:
alterdatabasedb01mount;
打开只读数据库:
alterdatabasedb02openreadonly
对数据库进行约束:
startuprestrict
放一个事件在约束模块:
altersystemenablerestrictedsession
6、关闭服务器:
a)Normal
b)Transactional
c)Immediate
d)Abort
7、数据字典:
一系列显示记录、核实、提供有关数据库的信息的表
作用:
1)、Oracleserverusesittofindinformationabout:
users、schemaobjects、storagestructures
2)、OracleservermodifiesitwhenaDDLstatementisexecuted
3)、UsersandDBAscanuseitasaread-onlyreferenceforinformationaboutthedatabase
8、权限:
GRANTCREATESESSIONTOemi;
GRANTCREATESESSIONTOemiWITHADMINOPTION;
REVOKECREATETABLEFROMemi;
GRANTEXECUTEONdbms_outputTOjeff;
GRANTUPDATEONemi.customersTOjeffWITHGRANTOPTION;
REVOKESELECTONemi.ordersFROMjeff;
9、角色:
CREATEROLEoe_clerk;
CREATEROLEhr_clerkIDENTIFIEDBYbonus;
ALTERROLEoe_clerkIDENTIFIEDBYorder;
ALTERROLEhr_clerkIDENTIFIEDEXTERNALLY;
ALTERROLEhr_managerNOTIDENTIFIED;
GRANToe_clerkTOscott;
GRANThr_clerkTOhr_manager;
GRANThr_managerTOscottWITHADMINOPTION;
ALTERUSERscottDEFAULTROLEhr_clerk,oe_clerk;
ALTERUSERscottDEFAULTROLEALL;
ALTERUSERscottDEFAULTROLEALLEXCEPThr_clerk;
ALTERUSERscottDEFAULTROLENONE;
10、
SELECTlast_name,job_id,salary,
CASEjob_idWHEN'IT_PROG'THEN1.10*salary
WHEN'ST_CLERK'THEN1.15*salary
WHEN'SA_REP'THEN1.20*salary
ELSEsalaryEND"REVISED_SALARY"
FROMemployees;
SELECTlast_name,job_id,salary,
DECODE(job_id,'IT_PROG',1.10*salary,
'ST_CLERK',1.15*salary,
'SA_REP',1.20*salary,
salary)
REVISED_SALARY
FROMemployees;
在一个SQL中对一个表同时执行inserts和updates操作。
MERGEINTOcopy_empc
USINGemployeese
ON(c.employee_id=e.employee_id)
WHENMATCHEDTHEN
UPDATESET
...
WHENNOTMATCHEDTHEN
INSERTVALUES...;
11、PL/SQL的特点:
过程化和模块化
使用过程化语言的控制结构
错误处理
可移植性
集成
改善性能
12、PL/SQL程序的单元由逻辑块组成
Declear(可选)
Begin(必须)
Exception(可选)
End;
/
13、IF语句:
DECLARE
v_salemp.sal%type;
BEGIN
SELECTsalINTOv_salFROMempWHEREempno=7788;
IFv_sal<500THEN
UPDATEempSETsal=sal*1.5WHEREempno=7788;
ELSIFv_sal<1500THEN
UPDATEempSETsal=sal*1.3WHEREempno=7788;
ELSE
UPDATEempSETsal=sal*1.0WHEREempno=7788;
ENDIF;
COMMIT;
END;
/
14、CASE语句:
CASE
WHENgrade=‘A’THENdbms_output.put_line(‘excellent’);
WHENgrade=‘B’THENdbms_output.put_line(‘verygood’);
WHENgrade=‘C’THENdbms_output.put_line(‘good’);
WHENgrade=‘D’THENdbms_output.put_line(‘fair’);
WHENgrade=‘F’THENdbms_output.put_line(‘poor);
ELSEdbms_output.put_line(‘nosuchgrade’);
ENDCASE;
15、LOOP语句:
DECLARE
v_counternumber:
=1;
BEGIN
LOOP
INSERTINTOtemp_tableVALUES(v_counter,’loopindex’);
v_counter:
=v_counter+1;
IFv_counter>50THEN
exit
ENDIF;
ENDLOOP;
END;
/
//////================
DECLARE
v_counternumber:
=1;
BEGIN
WHILEv_counter<=50LOOP
INSERTINTOtemp_tableVALUES(v_counter,‘loop_index’);
v_counter:
=v_counter+1;
ENDLOOP;
END;
/
///////===============
DECLARE
v_counternumber:
=1;
BEGIN
FORv_counterIN1..50LOOP
INSERTINTOtemp_tableVALUES(v_counter,’loopindex’);
ENDLOOP;
END;
/
FORv_counterINREVERSE1..50LOOP//相反
//////////====================
DECLARE
v_vonternumber:
=1;
BEGIN
LOOP
INSERTINTOtemp_tableVALUES(v_counter,‘loopcount’);
v_counter:
=v_counter+1;
IFv_counter>50THEN
GOTOENDOFLOOP;
ENDIF;
ENDLOOP;
<
INSERTINTOtemp_table(char_col)VALUES(‘done!
’);
END;
16、常见异常:
异常代码
异常名称
说明
ORA-01403
NO_DATA_FOUND
查询没有返回数据
ORA-01422
TOO_MANY_ROWS
SELECT…INTO语句返回多行结果
DECLARE
v_commm%type;
BEGIN
SELECTcommINTOv_comm
FROMempWHEREempno=7788;
EXCEPTION
WHENno_data_foundTHEN
dbms_output.put_line(‘nodata!
’);
WHENtoo_many_rowsTHEN
dbms_output.put_line(‘toomanyrow!
’);
WHENothersTHEN
null;
END;
17、处理用户自定义的错误有三个步骤:
定义错误、触发错误、处理错误
DECLARE
e_toomanystudentexception; /*定义错误*/
v_currentstudentnumber(3);
v_maxstudentnumber(3);
v_errorcodenumber;
v_errortextvarchar2(200);
BEGIN
SELECTcurrent_student,max_studentsINTO
v_currentstudent,v_maxstudent
FROMclasseWHEREdepartment=‘HIS’andcourse=101;
IFv_currentstudent>v_maxstudentTHEN
RAISEe_toomanystudent; /*触发错误*/
ENDIF;
EXCEPTION
WHENno_data_foundortoo_many_rowsTHEN
dbms_output.putline(‘发生系统预定义错误’);
WHENe_toomanystudentTHEN/*处理错误*/
INSERTINTOlog_table(info)
VALUES(‘history101has’||v_curre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 软件 学院 Oracle 复习