Les20-chinese(Oracle公司内部数据库培训资料)_第1页
Les20-chinese(Oracle公司内部数据库培训资料)_第2页
Les20-chinese(Oracle公司内部数据库培训资料)_第3页
Les20-chinese(Oracle公司内部数据库培训资料)_第4页
Les20-chinese(Oracle公司内部数据库培训资料)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle9i 对 DML 和 DDL 语句的扩展 目标通过本章章学习,您将可可以:描述多表表插入的的特点使用不同同类型的的多表插插入无条件的的INSERT旋转INSERT有条件的的ALLINSERT有条件的的FIRSTINSERT创建和使使用外部部表创建主键键约束的的同时创创建索引引INSERT语句使用INSERT语句向表表中插入入新的数数据使用上面面的语句句每次只只能向表表中插入入一行数数据INSERTINTOtable(column, column.)VALUES(value, value.);INSERTINTOdepartments(department_id,department

2、_name,manager_id,location_id)VALUES(70, PublicRelations,100,1700);1 rowcreated.UPDATE语句使用UPDATE语句更新新表中的的数据使用上面面的语句句每次可可更新表表中的一一行或多多行数据据使用WHERE子句指定定更新的的条件UPDATEtableSETcolumn=value,column=value,.WHEREcondition;UPDATEemployeesSETdepartment_id= 70WHEREemployee_id=142;1 rowupdated.多表INSERT语句INSERT.SELEC

3、T是使用一个个DML语句向多多个表中中插入数数据的一一部分多表INSERT语句可作作为数据据仓库应应用中向向目标数数据库传传送数据据的一种种方法它具有更更高的效效率:避免使用用多各DML语句使用一个个DML完成IF.THEN的逻辑处处理多表INSERT语句的类类型Oracle9i提供以下下四种多多表INSERT语句类型型:无条件的的INSERT有条件的的ALLINSERT有条件的的FIRSTINSERT旋转INSERT多表INSERT语句INSERTALLconditional_insert_clauseinsert_into_clause values_clause (subquery)AL

4、L FIRSTWHENconditionTHENinsert_into_clausevalues_clauseELSEinsert_into_clausevalues_clauseconditional_insert_clause语法无条件的的INSERTALL应用举例例INSERTALLINTO sal_history VALUES(EMPID,HIREDATE,SAL)INTO mgr_history VALUES(EMPID,MGR,SAL)SELECTemployee_idEMPID, hire_dateHIREDATE,salarySAL,manager_id MGRFROMempl

5、oyeesWHEREemployee_id 200;8 rowscreated.有条件的的INSERTALL应用举例例INSERTALLWHEN SAL 10000 THENINTO sal_history VALUES(EMPID,HIREDATE,SAL)WHEN MGR 200THENINTO mgr_history VALUES(EMPID,MGR,SAL)SELECTemployee_idEMPID,hire_date HIREDATE,salarySAL,manager_id MGRFROMemployeesWHEREemployee_id200;4 rowscreated.有条件

6、的的FIRSTINSERT应用举例例 INSERTFIRSTWHEN SAL25000THENINTO special_sal VALUES(DEPTID, SAL)WHEN HIREDATE like(%00%)THENINTO hiredate_history_00VALUES(DEPTID,HIREDATE)WHEN HIREDATE like(%99%)THENINTO hiredate_history_99VALUES(DEPTID,HIREDATE)ELSEINTO hiredate_historyVALUES(DEPTID,HIREDATE)SELECTdepartment_id

7、DEPTID, SUM(salary) SAL,MAX(hire_date)HIREDATEFROMemployeesGROUPBYdepartment_id;8 rowscreated.旋转INSERT应用举例例 INSERTALLINTO sales_infoVALUES (employee_id,week_id,sales_MON)INTO sales_infoVALUES (employee_id,week_id,sales_TUE)INTO sales_infoVALUES (employee_id,week_id,sales_WED)INTO sales_infoVALUES (e

8、mployee_id,week_id,sales_THUR)INTO sales_infoVALUES (employee_id,week_id,sales_FRI)SELECTEMPLOYEE_ID, week_id, sales_MON,sales_TUE,sales_WED, sales_THUR,sales_FRIFROM sales_source_data;5 rowscreated.外部表外部表是是只读的的表,其其数据存存储在数数据库外外的平面面文件中中外部表的的各种参参数在CREATETABLE语句中指指定使用外部部表,数据可以以存储到到外部文文件或从从外部文文件中上上载数据据到

9、数据据库数据可以以使用SQL访问,但但不能能使用DML后在外部部表上创创建索引引创建路径径 创建外部部表之前前应先使使用CREATEDIRECTORY语句创建建路径CREATEDIRECTORY emp_dirAS/flat_files;创建外部部表举例例 CREATETABLEoldemp (empnoNUMBER, empnameCHAR(20), birthdateDATE)ORGANIZATIONEXTERNAL(TYPEORACLE_LOADERDEFAULT DIRECTORYemp_dirACCESSPARAMETERS(RECORDSDELIMITEDBYNEWLINEBADF

10、ILE bad_empLOGFILE log_empFIELDSTERMINATEDBY,(empnoCHAR,empname CHAR,birthdateCHARdate_formatdate maskdd-mon-yyyy)LOCATION(emp1.txt)PARALLEL5REJECTLIMIT200;Tablecreated.查询外部部表 SELECT*FROM oldempemp1.txt创建主键键约束同同时创建建索引举举例 CREATETABLENEW_EMP(employee_idNUMBER(6)PRIMARY KEYUSINGINDEX(CREATE INDEX emp_id_idxONNEW_EMP(employee_id),first_nameVARCHAR2(20),last_nameVARCHAR2(25);Tablecreated.SELECTINDE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论