les20_oracle9i对dml和ddl语句的扩展ppt课件_第1页
les20_oracle9i对dml和ddl语句的扩展ppt课件_第2页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、Oracle9i 对 DML 和 DDL 语句的扩展 目的经过本章学习,您将可以:描画多表插入的特点运用不同类型的多表插入无条件的INSERT旋转 INSERT有条件的 ALL INSERT有条件的 FIRST INSERT创建和运用外部表创建主键约束的同时创建索引INSERT 语句运用 INSERT 语句向表中插入新的数据运用上面的语句每次只能向表中插入一行数据INSERT INTOtable (column , column.)VALUES(value , value.);INSERT INTO departments(department_id, department_name, man

2、ager_id, location_id)VALUES (70, Public Relations, 100, 1700);1 row created.UPDATE 语句运用UPDATE 语句更新表中的数据运用上面的语句每次可更新表中的一行或多行数据 运用 WHERE 子句指定更新的条件UPDATEtableSETcolumn = value , column = value, .WHERE condition;UPDATE employeesSET department_id = 70WHERE employee_id = 142;1 row updated.多表 INSERT 语句INSE

3、RT.SELECT 是运用一个DML 语句向多个表中插入数据的一部分多表INSERT 语句可作为数据仓库运用中向目的数据库传送数据的一种方法它具有更高的效率:防止运用多各DML 语句 运用一个DML 完成 IF.THEN 的逻辑处置多表 INSERT 语句的类型Oracle9i 提供以下四种多表INSERT 语句类型: 无条件的 INSERT有条件的 ALL INSERT有条件的 FIRST INSERT旋转 INSERT多表 INSERT 语句INSERT ALL conditional_insert_clauseinsert_into_clause values_clause (subqu

4、ery)ALL FIRSTWHEN condition THEN insert_into_clause values_clauseELSE insert_into_clause values_clause conditional_insert_clause语法无条件的 INSERT ALL 运用举例INSERT ALL INTO sal_history VALUES(EMPID,HIREDATE,SAL) INTO mgr_history VALUES(EMPID,MGR,SAL) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL

5、, manager_id MGR FROM employees WHERE employee_id 200;8 rows created. 有条件的 INSERT ALL 运用举例INSERT ALL 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 e

6、mployees WHERE employee_id 200;4 rows created. 有条件的 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)

7、 ELSE INTO hiredate_history VALUES(DEPTID, HIREDATE) SELECT department_id DEPTID, SUM(salary) SAL, MAX(hire_date) HIREDATE FROM employees GROUP BY department_id;8 rows created.旋转 INSERT 运用举例 INSERT ALL INTO sales_info VALUES (employee_id,week_id,sales_MON) INTO sales_info VALUES (employee_id,week_id

8、,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;5 rows created.

9、 外部表外部表是只读的表,其数据存储在数据库外的平面文件中外部表的各种参数在 CREATE TABLE 语句中指定运用外部表, 数据可以存储到外部文件或从外部文件中上载数据到数据库数据可以运用 SQL访问, 但不能运用 DML 后在外部表上创建索引创建途径 创建外部表之前应先运用CREATE DIRECTORY语句创建途径CREATE DIRECTORY emp_dir AS /flat_files ;创建外部表举例 CREATE TABLE oldemp ( empno NUMBER, empname CHAR(20), birthdate DATE) ORGANIZATION EXTERN

10、AL (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;Table created.查询外部表 SELECT * FROM oldempemp1.txt创建主键约束同时创建索引举例 CREATE TABLE NEW_EMP(employee_id NUMBER(6) PRIMARY KEY USING INDEX (CREATE INDEX emp_id_idx ON NEW_EMP(employee_id),first_name VARCHAR2(20),last_name VARCHAR2(25);Table created.SELECT

温馨提示

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

评论

0/150

提交评论