资源描述:
《les20_oracle9i对dml和ddl语句的扩展.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle9i对DML和DDL语句的扩展目标通过本章学习,您将可以:描述多表插入的特点使用不同类型的多表插入无条件的INSERT旋转INSERT有条件的ALLINSERT有条件的FIRSTINSERT创建和使用外部表创建主键约束的同时创建索引INSERT语句使用INSERT语句向表中插入新的数据使用上面的语句每次只能向表中插入一行数据INSERTINTOtable[(column[,column...])]VALUES(value[,value...]);INSERTINTOdepartments(department_id,depa
2、rtment_name,manager_id,location_id)VALUES(70,'PublicRelations',100,1700);1rowcreated.UPDATE语句使用UPDATE语句更新表中的数据使用上面的语句每次可更新表中的一行或多行数据使用WHERE子句指定更新的条件UPDATEtableSETcolumn=value[,column=value,...][WHEREcondition];UPDATEemployeesSETdepartment_id=70WHEREemployee_id=142;1rowup
3、dated.多表INSERT语句INSERT...SELECT是使用一个DML语句向多个表中插入数据的一部分多表INSERT语句可作为数据仓库应用中向目标数据库传送数据的一种方法它具有更高的效率:避免使用多各DML语句使用一个DML完成IF...THEN的逻辑处理多表INSERT语句的类型Oracle9i提供以下四种多表INSERT语句类型:无条件的INSERT有条件的ALLINSERT有条件的FIRSTINSERT旋转INSERT多表INSERT语句INSERT[ALL][conditional_insert_clause][inse
4、rt_into_clausevalues_clause](subquery)[ALL][FIRST][WHENconditionTHEN][insert_into_clausevalues_clause][ELSE][insert_into_clausevalues_clause]conditional_insert_clause语法无条件的INSERTALL应用举例INSERTALLINTOsal_historyVALUES(EMPID,HIREDATE,SAL)INTOmgr_historyVALUES(EMPID,MGR,SA
5、L)SELECTemployee_idEMPID,hire_dateHIREDATE,salarySAL,manager_idMGRFROMemployeesWHEREemployee_id>200;8rowscreated.有条件的INSERTALL应用举例INSERTALLWHENSAL>10000THENINTOsal_historyVALUES(EMPID,HIREDATE,SAL)WHENMGR>200THENINTOmgr_historyVALUES(EMPID,MGR,SAL)SELECTemployee_id
6、EMPID,hire_dateHIREDATE,salarySAL,manager_idMGRFROMemployeesWHEREemployee_id>200;4rowscreated.有条件的FIRSTINSERT应用举例INSERTFIRSTWHENSAL>25000THENINTOspecial_salVALUES(DEPTID,SAL)WHENHIREDATElike('%00%')THENINTOhiredate_history_00VALUES(DEPTID,HIREDATE)WHENHIREDATElike(
7、'%99%')THENINTOhiredate_history_99VALUES(DEPTID,HIREDATE)ELSEINTOhiredate_historyVALUES(DEPTID,HIREDATE)SELECTdepartment_idDEPTID,SUM(salary)SAL,MAX(hire_date)HIREDATEFROMemployeesGROUPBYdepartment_id;8rowscreated.旋转INSERT应用举例INSERTALLINTOsales_infoVALUES(employee_
8、id,week_id,sales_MON)INTOsales_infoVALUES(employee_id,week_id,sales_TUE)INTOsales_infoVALUES(employee