资源描述:
《PLSQL系列培训之一:基本语法(幻灯说明稿)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PL/SQL系列培训之一:基本语法第一讲分四个部分:SQL基本语法、基本逻辑控制、事务和异常SQL基本语法SQL分类数据定义语言DDL:CREATE/DROP/ALTER/COMMENT/TRUNCATE等数据操作语言DML:UPDATE/DELETE/INSERT/CALL/SELECTFORUPDATE等数据控制语言DCL:GRANT/REVOKE/COMMIT/ROLLBACK等SELECTFORUPDATESELECTFORUPDATE锁住某个表的相关行。如果是多表查询:SELECTFORUPDATEoftable.c
2、olumn----用来表连接时锁住其中一个表的相关行;----否则将锁住所有表(包括from子查询,不包括条件子查询)的相关行举例:SELECTt1.id,t2.infoFROMtest_table1t1,test_table2t2WHEREt1.id=t2.idFORUPDATEoft1.idLOCKTABLELOCKTABLEtable_nameINlockmodeMODE(NOWAIT)LOCKTABLEtanjie21INSHAREUPDATEMODE;--同下LOCKTABLEtanjie21INROWSHAREMO
3、DE;--行共享锁,其他会话无法获得排他锁LOCKTABLEtanjie22INROWEXCLUSIVEMODE;--行排他锁,禁止SHARE锁定--UPDATE/DELETE/INSERT自动获得LOCKTABLEtanjie23INSHAREMODE;--表共享锁LOCKTABLEtanjie24INEXCLUSIVEMODE;--表排他锁LOCKTABLEtanjie25INSHAREROWEXCLUSIVEMODE;--表级共享行级排他WAIT/NOWAITNOWAIT--报ora-00054WAITinteger(秒
4、)--报ora-30006EXECUTEIMMEDIATE处理动态SQL的两种方式:(1)EXECUTEIMMEDIATE(2)OPEN-FOR,FETCH,andCLOSE性能优化(以后再讲):BULKEXECUTEIMMEDIATEEXECUTEIMMEDIATE的完整语法:EXECUTEIMMEDIATEdynamic_SQL_string[INTOdefined_variable1,defined_variable2,...][USING[IN
5、OUT
6、INOUT]bind_argument1,bind_argumen
7、t2,...][RETURNINGINTO
8、RETURNbind_argument1,bind_argument2,...]使用INTO子句确定返回的是单行查询结果(与SELECTINTO类似)SUBQUERY标准子查询:和主查询没有直接联系,在ORACLE中首先执行且只执行一次关联子查询:在执行过程中需要与主查询发生联系,如子查询的条件依赖于主查询传递的条件。单值:=----注意要确保子查询出来的记录最多只有一条,如果没有返回记录,需要注意空的处理----尤其是update多值:IN/NOTIN/EXISTS/NOTEXIS
9、TS/ANY/SOME/ALLANY/SOME/ALL前必须加=,<>,>=,<=等连接符表连接示例:createtabletest_speciality(namenvarchar2(10),specnvarchar2(10));insertintotest_specialityvalues('jack','二胡');insertintotest_specialityvalues('tom','围棋');insertintotest_specialityvalues('bill','舞蹈');createtabletest_c
10、ompetition(namenvarchar2(10),goalnvarchar2(10));insertintotest_competitionvalues('jack','数学');insertintotest_competitionvalues('tom','英语');insertintotest_competitionvalues('lily','计算机');insertintotest_competitionvalues('tom','物理');内连接:selectt1.name,t1.spec,t2.goalfr
11、omtest_specialityt1,test_competitiont2wheret1.name=t2.name;外连接:(左外连接)selectt1.name,t1.spec,t2.goalfromtest_specialityt1,test_competitiont2