Oracle公司内部数据库培训资料20Oracle9i 对 DML 和 DDL 语句的扩展_第1页
Oracle公司内部数据库培训资料20Oracle9i 对 DML 和 DDL 语句的扩展_第2页
Oracle公司内部数据库培训资料20Oracle9i 对 DML 和 DDL 语句的扩展_第3页
Oracle公司内部数据库培训资料20Oracle9i 对 DML 和 DDL 语句的扩展_第4页
Oracle公司内部数据库培训资料20Oracle9i 对 DML 和 DDL 语句的扩展_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

Oracle9i

DML和DDL语句扩展

第1页目标通过本章学习,您将能够:描述多表插入特点使用不一样类型多表插入无条件INSERT旋转INSERT有条件ALLINSERT有条件

FIRSTINSERT创建和使用外部表创建主键约束同步创建索引第2页INSERT

语句使用INSERT

语句向表中插入新数据

使用上面语句每次只能向表中插入一行数据INSERTINTO table[(column[,column...])]VALUES (value[,value...]);INSERTINTOdepartments(department_id,department_name,manager_id,location_id)VALUES(70,'PublicRelations',100,1700);1rowcreated.第3页UPDATE

语句使用UPDATE

语句更新表中数据

使用上面语句每次可更新表中一行或多行数据

使用WHERE

子句指定更新条件UPDATE tableSET column=value[,column=value,...][WHERE condition];UPDATEemployeesSETdepartment_id=70WHEREemployee_id=142;1rowupdated.第4页多表INSERT

语句INSERT...SELECT

是使用一种DML语句向多种表中插入数据一部分多表INSERT

语句可作为数据仓库应用中向目标数据库传送数据一种办法它具有更高效率:避免使用多各DML语句使用一种DML完成IF...THEN

逻辑处理第5页多表INSERT

语句类型Oracle9i

提供下列四种多表INSERT语句类型:无条件INSERT有条件ALLINSERT有条件FIRSTINSERT旋转INSERT第6页多表INSERT

语句INSERT[ALL][conditional_insert_clause][insert_into_clausevalues_clause](subquery)[ALL][FIRST][WHENconditionTHEN][insert_into_clausevalues_clause][ELSE][insert_into_clausevalues_clause]conditional_insert_clause语法第7页无条件INSERTALL应用举例INSERTALL

INTOsal_historyVALUES(EMPID,HIREDATE,SAL)

INTOmgr_historyVALUES(EMPID,MGR,SAL)SELECTemployee_idEMPID,hire_dateHIREDATE,

salarySAL,manager_idMGRFROMemployees

WHEREemployee_id>200;8rowscreated.

第8页有条件INSERTALL应用举例INSERTALL

WHENSAL>10000THEN

INTOsal_historyVALUES(EMPID,HIREDATE,SAL)

WHENMGR>200THEN

INTOmgr_historyVALUES(EMPID,MGR,SAL)

SELECTemployee_idEMPID,hire_dateHIREDATE,salarySAL,manager_idMGRFROMemployees

WHEREemployee_id>200;4rowscreated.

第9页有条件FIRSTINSERT应用举例

INSERTFIRST

WHENSAL>25000THEN

INTOspecial_salVALUES(DEPTID,SAL)

WHENHIREDATElike('%00%')THEN

INTOhiredate_history_00VALUES(DEPTID,HIREDATE)

WHENHIREDATElike('%99%')THEN

INTOhiredate_history_99VALUES(DEPTID,HIREDATE)

ELSE

INTOhiredate_historyVALUES(DEPTID,HIREDATE)SELECTdepartment_idDEPTID,SUM(salary)SAL,

MAX(hire_date)HIREDATE

FROMemployeesGROUPBYdepartment_id;8rowscreated.第10页旋转INSERT应用举例

INSERTALL

INTOsales_infoVALUES(employee_id,week_id,sales_MON)

INTOsales_infoVALUES(employee_id,week_id,sales_TUE)

INTOsales_infoVALUES(employee_id,week_id,sales_WED)

INTOsales_infoVALUES(employee_id,week_id,sales_THUR)

INTOsales_infoVALUES(employee_id,week_id,sales_FRI)

SELECTEMPLOYEE_ID,week_id,sales_MON,sales_TUE,

sales_WED,sales_THUR,sales_FRI

FROMsales_source_data;5rowscreated.

第11页外部表外部表是只读表,其数据存放在数据库外平面文献中外部表多种参数在CREATETABLE

语句中指定使用外部表,

数据能够存放到外部文献或从外部文献中上载数据到数据库数据能够使用SQL访问,但不能使用DML后在外部表上创建索引第12页创建途径

创建外部表之前应先使用CREATEDIRECTORY语句创建途径CREATEDIRECTORYemp_dirAS'/flat_files';第13页创建外部表举例

CREATETABLEoldemp(

empnoNUMBER,empnameCHAR(20),birthdateDATE)

ORGANIZATIONEXTERNAL

(TYPEORACLE_LOADER

DEFAULTDIRECTORYemp_dir

ACCESSPARAMETERS

(RECORDSDELIMITEDBYNEWLINE

BADFILE'bad_emp'

LOGFILE'log_emp'

FIELDSTERMINATEDBY','

(empnoCHAR,

empnameCHAR,

birthdateCHARdate_formatdatemask"dd-mon-yyyy"))

LOCATION('emp1.txt'))

PARALLEL5

REJECTLIMIT200;Tablecreated.第14页查询外部表

SELECT*

FROMoldempemp1.txt第15页创建主键约束同步创建索引举例

CREATETABLENEW_EMP(employee_idNUMBER(6)

PRIMARYKEYUSINGINDEX

(CREATEINDEXemp_id_idxON

NEW_EMP(employee_id)),first_nameVARCHAR2(20),

last_nameVARCHAR2(25));Tablecreated.SELECTINDEX_NAME,TAB

温馨提示

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

评论

0/150

提交评论