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

下载本文档

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

文档简介

1、20Copyright Oracle Corporation, 2001. All rights reserved.Oracle9i 对对 DML 和和 DDL 语句的扩展语句的扩展 20-2Copyright Oracle Corporation, 2001. All rights reserved.目标目标通过本章学习,您将可以通过本章学习,您将可以:描述多表插入的特点描述多表插入的特点使用不同类型的多表插入使用不同类型的多表插入无条件的无条件的INSERT旋转旋转 INSERT有条件的有条件的 ALL INSERT有条件的有条件的 FIRST INSERT创建和使用外部表创建和使用外部表

2、创建主键约束的同时创建索引创建主键约束的同时创建索引20-3Copyright Oracle Corporation, 2001. All rights reserved.INSERT 语句语句使用使用 INSERT 语句向表中插入新的数据语句向表中插入新的数据使用上面的语句每次只能向表中插入一行数据使用上面的语句每次只能向表中插入一行数据INSERT INTOtable (column , column.)VALUES(value , value.);INSERT INTO departments(department_id, department_name, manager_id, loc

3、ation_id)VALUES (70, Public Relations, 100, 1700);1 row created.20-4Copyright Oracle Corporation, 2001. All rights reserved.UPDATE 语句语句使用使用UPDATE 语句更新表中的数据语句更新表中的数据使用上面的语句每次可更新表中的一行或多行数据使用上面的语句每次可更新表中的一行或多行数据 使用使用 WHERE 子句指定更新的条件子句指定更新的条件UPDATEtableSETcolumn = value , column = value, .WHERE conditio

4、n;UPDATE employeesSET department_id = 70WHERE employee_id = 142;20-5Copyright Oracle Corporation, 2001. All rights reserved.多表多表 INSERT 语句语句INSERT.SELECT 是是使用一个使用一个DML 语句向多个表中语句向多个表中插入数据的一部分插入数据的一部分多表多表INSERT 语句可作为数据仓库应用中向目标数据库语句可作为数据仓库应用中向目标数据库传送数据的一种方法传送数据的一种方法它具有更高的效率它具有更高的效率:避免使用多各避免使用多各DML 语句语句

5、 使用一个使用一个DML 完成完成 IF.THEN 的逻辑处理的逻辑处理20-6Copyright Oracle Corporation, 2001. All rights reserved.多表多表 INSERT 语句的类型语句的类型Oracle9i 提供以下四种多表提供以下四种多表INSERT 语句类型语句类型: 无条件的无条件的 INSERT有条件的有条件的 ALL INSERT有条件的有条件的 FIRST INSERT旋转旋转 INSERT20-7Copyright Oracle Corporation, 2001. All rights reserved.多表多表 INSERT 语句

6、语句INSERT ALL conditional_insert_clauseinsert_into_clause values_clause (subquery)ALL FIRSTWHEN condition THEN insert_into_clause values_clauseELSE insert_into_clause values_clause conditional_insert_clause语法语法20-8Copyright Oracle Corporation, 2001. All rights reserved.无条件的无条件的 INSERT ALL 应用举例应用举例INS

7、ERT ALL INTO sal_history VALUES(EMPID,HIREDATE,SAL) INTO mgr_history VALUES(EMPID,MGR,SAL) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM employees WHERE employee_id 200; 20-9Copyright Oracle Corporation, 2001. All rights reserved.有条件的有条件的 INSERT ALL 应用举例应用举例INSERT ALL

8、 WHEN SAL 10000 THEN INTO sal_history VALUES(EMPID,HIREDATE,SAL) WHEN MGR 200 THEN INTO mgr_history VALUES(EMPID,MGR,SAL) SELECT employee_id EMPID,hire_date HIREDATE, salary SAL, manager_id MGR FROM employees WHERE employee_id 200; 20-10Copyright Oracle Corporation, 2001. All rights reserved.有条件的有条件

9、的 FIRST INSERT 应用举例应用举例 INSERT FIRST WHEN SAL 25000 THEN INTO special_sal VALUES(DEPTID, SAL) WHEN HIREDATE like (%00%) THEN INTO hiredate_history_00 VALUES(DEPTID,HIREDATE) WHEN HIREDATE like (%99%) THEN INTO hiredate_history_99 VALUES(DEPTID, HIREDATE) ELSE INTO hiredate_history VALUES(DEPTID, HIR

10、EDATE) SELECT department_id DEPTID, SUM(salary) SAL, MAX(hire_date) HIREDATE FROM employees GROUP BY department_id;20-11Copyright Oracle Corporation, 2001. All rights reserved.旋转旋转 INSERT 应用举例应用举例 INSERT ALL INTO sales_info VALUES (employee_id,week_id,sales_MON) INTO sales_info VALUES (employee_id,w

11、eek_id,sales_TUE) INTO sales_info VALUES (employee_id,week_id,sales_WED) INTO sales_info VALUES (employee_id,week_id,sales_THUR) INTO sales_info VALUES (employee_id,week_id, sales_FRI) SELECT EMPLOYEE_ID, week_id, sales_MON, sales_TUE, sales_WED, sales_THUR,sales_FRI FROM sales_source_data; 20-12Cop

12、yright Oracle Corporation, 2001. All rights reserved.外部表外部表外部表是只读的表,其数据存储在数据库外的平面文件中外部表是只读的表,其数据存储在数据库外的平面文件中外部表的各种参数在外部表的各种参数在 CREATE TABLE 语句中指定语句中指定使用外部表使用外部表, 数据可以存储到外部文件或从外部文件中上载数据可以存储到外部文件或从外部文件中上载数据到数据库数据到数据库数据可以使用数据可以使用 SQL访问访问, 但不能使用但不能使用 DML 后在外部表上创后在外部表上创建索引建索引20-13Copyright Oracle Corpor

13、ation, 2001. All rights reserved.创建路径创建路径 创建外部表之前应先使用创建外部表之前应先使用CREATE DIRECTORYCREATE DIRECTORY语句创建路径语句创建路径CREATE DIRECTORY emp_dir AS /flat_files ;20-14Copyright Oracle Corporation, 2001. All rights reserved.创建外部表举例创建外部表举例 CREATE TABLE oldemp ( empno NUMBER, empname CHAR(20), birthdate DATE) ORGAN

14、IZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY emp_dir ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE BADFILE bad_emp LOGFILE log_emp FIELDS TERMINATED BY , (empno CHAR, empname CHAR, birthdate CHAR date_format date mask dd-mon-yyyy) LOCATION (emp1.txt) PARALLEL 5 REJECT LIMIT 200;20-15Copy

15、right Oracle Corporation, 2001. All rights reserved.查询外部表查询外部表 SELECT * FROM oldempemp1.txt20-16Copyright Oracle Corporation, 2001. All rights reserved.创建主键约束同时创建索引举例创建主键约束同时创建索引举例 CREATE TABLE NEW_EMP(employee_id NUMBER(6) PRIMARY KEY USING INDEX (CREATE INDEX emp_id_idx ON NEW_EMP(employee_id),fir

16、st_name VARCHAR2(20),last_name VARCHAR2(25);SELECT INDEX_NAME, TABLE_NAME FROM USER_INDEXESWHERE TABLE_NAME = NEW_EMP;20-17Copyright Oracle Corporation, 2001. All rights reserved.总结总结通过本章学习通过本章学习,您已经可以您已经可以:使用多表插入代替多个单独的使用多表插入代替多个单独的 DML 语句语句创建外部表创建外部表 创建主键约束同时创建索引创建主键约束同时创建索引20-18Copyright Oracle Corporation, 2001

温馨提示

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

评论

0/150

提交评论