`
jasonw68
  • 浏览: 153013 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle dml和ddl扩展

    博客分类:
  • SQL
阅读更多

1.语句回顾
1)用insert语句添加新行到表中

  insert into table[(column [,column...])]
  values (value[,value...]);
  
  用此语法一次只能插入一行:
  例:
     insert into dept(deptno,dname,loc)    
     values (70,'public relations','shenyang');

2)用update语句修改存在的行
  
  update table
  set    column=value[,column=value,...]
  [where condition];
  
  -一次可以修改多行
  -如果使用了where子句,可以指定一行或多行被修改
  例:
     update emp
     set    deptno=30
     where  empno=7369;   

2.多表insert语句
1)insert...select语句能够作为单个的dml语句的一部分用于插入行到多表中
2)多表insert语句能够被用在数据仓库系统中从一个或多个操作源转移数据到一组目的表中
3)oracle9i引入下面的多表插入语句的类型:
  -无条件insert
  -条件all insert
  -条件first insert
  -枢轴式(pivoting)insert

3.无条件insert语句
  
1)语法
  insert all
         [insert_into_value][values_clause]
  (subquery)

2)例子
  -从emp表中选择empno大于7698雇员的empno,hiredate,sal和mgr值
  -用多表insert插入这些值到sal_history(empno,hiredate,sal)和mgr_history(empno,mgr,sal)表中 

  insert all
    into sal_history values(empno,hiredate,sal)
    into mgr_history values(empno,mgr,sal)
  select empno,hiredate,sal,mgr
  from   emp
  where  empno>7698;

4.条件insert语句
1)语法
  insert all
       [when condition then]
             [insert_into_clause][values_clause]
  (subquery)

2)例子
  -从emp表中选择empno大于7698雇员的empno,hiredate,sal和mgr值
  -如果sal大于$2500,用一个条件多表insert语句插入这些值到sal_history表中
  -如果mgr大于7782,用一个多表insert语句插入这些值到mgr_history表中

  insert all
    when sal>2500 then
      into sal_history values(empno,hiredate,sal)
    when mgr>7782 then
      into mgr_history values(empno,mgr,sal)
  select empno,hiredate,sal,mgr
  from   emp
  where  empno>7698;
    
5.条件first insert
1)语法
  
  insert first
      [when condition then]
               [insert_into_clause][values_clause]
      [else]
               [insert_into_clause][values_clause]
  (subquery)

2)例子
  -从emp表中选择empno大于7698雇员的empno,hiredate,sal和mgr值
  -如果sal大于$2500,则用一个条件first多表insert语句插入这些值到sal_history表中
  -如果第一个when子句的值为true,则该行后面的when子句被跳过
  -如果mgr大于7782,用一个条件first多表insert语句插入这些值到mgr_history表中

  insert first
    when sal>2500 then
      into sal_history values(empno,hiredate,sal)
    when mgr>7782 then
      into mgr_history values(empno,mgr,sal)
  select empno,hiredate,sal,mgr
  from   emp
  where  empno>7698;

6.枢轴式(pivoting) insert

1)支持从非关系数据库表中接受一组销售记录
  sales_source_data的格式如下:
    empno,week_id,sales_mon,sales_tue,sales_wed,sales_thur,sales_fri
2)你可能想要以一种典型的相关格式存储这些记录到sales_info(empno,week,sales)表中
3)使用pivoting insert,从非关系数据库表转换销售记录集到关系格式

  insert all
    into sales_info values(empno,week_id,sales_mon)
    into sales_info values(empno,week_id,sales_tue)
    into sales_info values(empno,week_id,sales_wed)
    into sales_info values(empno,week_id,sales_thur)
    into sales_info values(empno,week_id,sales_fri)
  select empno,week_id,sales_mon,sales_tue,sales_wed,sales_thur,sales_fri
  from   sales_source_data;
 
分享到:
评论

相关推荐

    00570 Oracle公司内部数据库培训资料-Les20_Oracle9i对DML和DDL语句的扩展(PPT 21页).ppt

    Oracle 9i数据库系统在DML(数据操纵语言)和DDL(数据定义语言)方面提供了许多扩展功能,这些扩展使得数据库管理和数据操作更加高效和灵活。以下是对这些扩展的详细说明: 1. 多表插入(Multi-Table Insert): ...

    DQL,DML, DDL,DCL区别.pdf

    在数据库管理中,SQL语言是核心工具之一,它包含了四种类别:数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。这些语言各自承担着不同的任务,确保数据库的有效管理和操作。 ...

    oracle公司内部的培训资料

    Les01 : 基本SQL SELECT语句 Les02 : 过滤和排序数据[where / order by] Les03 : 单行函数[字符/数值/日期/转换/通用] ...Les19 : Oracle9i 对 DML 和 DDL 语句的扩展 Les20 : 对 DML 和 DDL 语句的扩展

    oracle学习笔记(txt格式,自己总结的,很详细,每章附有例题和习题及答案)

    oracle学习笔记,txt格式,完全是自己总结的,特别详细,有例子,还有练习题以及答案。包括1.基本SQL语句 2.限制和排列数据 3.单行函数 4.多表查询 5....分级取回数据 18.oracle9i对DML和DDL语句的扩展。

    Oracle公司内部数据库培训中文PPT资料

    Les01 基本SQL SELECT语句.ppt Les02 过滤和排序数据.ppt Les03 单行函数.ppt Les04 多表查询.ppt Les05 分组函数.ppt Les06 子查询.ppt Les07 iSQLPlus.ppt ... Les20 DML 和 DDL 语句的扩展.ppt

    cx_Oracle使用手册

    游标对象是数据库操作的核心,通过它可以执行DML(数据操作语言)和DDL(数据定义语言)语句,还能处理SQL查询返回的数据。 3. 变量对象(Variable Objects):用于处理存储在数据库中的变量。变量对象支持不同类型...

    oracle11g

    oracle11g ...第十七章:DML和DDL语句的其他用法 第十八章 通过GROUP BY产生统计报告 第十九章:ORACLE分层查询 第二十章:Oracle的Timezone 第二十一章:全球化特性与字符集 第二十二章:正则表达式

    oracle_Oracle官网课件

    课件可能涵盖Oracle Cloud Infrastructure (OCI) 中的数据库服务,如Autonomous Database,以及如何迁移本地数据库至云端,实现资源的弹性扩展和成本优化。 通过全面学习这套“Oracle官网课件”,你将具备扎实的...

    Oracle 10g 联机文档

    SQL是用于查询和操作数据库的标准语言,在Oracle 10g中,支持标准SQL语句,如SELECT、INSERT、UPDATE、DELETE,以及更复杂的DML和DDL操作。PL/SQL是Oracle特有的过程化语言,可以创建存储过程、函数、触发器等,增强...

    SSI整合,有ibatis连接oracle的分页,ajax等技术

    这些文件可能包括HTML页面、Servlet或JSP文件(用于SSI)、Ibatis的配置文件(如mybatis-config.xml和Mapper接口/XML配置)、Oracle的DML和DDL脚本(用于数据操作和表结构创建)、JavaScript文件(用于AJAX请求和DOM...

    oracle 经典教程学习

    Oracle是世界上最广泛使用的数据库管理系统之一,它以其稳定性、可扩展性和功能强大而闻名。这篇教程将带领你深入了解Oracle,从基础到进阶,让你成为掌握Oracle的专家。 **1. Oracle简介** Oracle数据库是由甲骨文...

    oracle资料 随便搜刮

    熟悉DML(数据操纵语言)和DDL(数据定义语言)是必要的。 3. **表空间和数据文件**:表空间是存储数据库对象的地方,数据文件则实际保存了数据库的数据。理解它们之间的关系以及如何管理存储是数据库管理员的基本...

    ORACLE公司内部数据库培训资料

    PPT格式,由浅入深讲解数据库 1 基本SQL SELECT语句 2 过滤和排序数据 3 单行函数 4 多表查询 5 分组函数 6 子查询 7 iSQL*Plus 8 处理数据 9 创建和管理表 ...16 Oracle9i 日期函数 ...20 DML 和 DDL 语句的扩展

    零点起飞学Oracle

    学习Oracle SQL,你需要理解DML(数据操纵语言)如SELECT、INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如CREATE、ALTER、DROP等语句。此外,高级SQL特性如子查询、连接、窗口函数、集合操作也应深入理解。 ...

    涂抹Oracle 三思笔记之一步一步学Oracle

    PL/SQL是Oracle提供的过程化语言扩展,是SQL的集合,可以包含逻辑处理和控制结构。PL/SQL用于编写存储过程、函数、触发器等数据库对象。 #### 6. 数据库管理 - **备份与恢复**:学习Oracle数据库的备份策略(物理...

    Oracle Sql基础(beginning oracle sql中文版)

    Oracle SQL是数据库管理员和开发人员用来与Oracle数据库交互的语言,它是SQL标准的扩展,提供了许多特有的功能和优化。本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle ...

    Oracle数据库经典教程

    SQL主要包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和数据查询语言(DQL)。其中,DQL是最基础的部分,用于查询数据库中的信息。 **Oracle数据类型** Oracle支持多种数据类型,如数值类型...

    Oracle-SQL.rar_oracle_oracle sql_sql

    8. **PL/SQL**:Oracle特有的PL/SQL是SQL的扩展,允许编写存储过程、函数和触发器等,增强了数据库的交互性与功能性。 9. **权限与安全性**:Oracle数据库提供了用户管理和权限控制机制,通过GRANT和REVOKE语句,...

    Oracle数据库系统应用与开发

    此外,了解SQL语法,包括DML(数据操纵语言)用于插入、更新和删除数据,以及DDL(数据定义语言)用于创建和修改数据库对象,都是必不可少的。 三、Oracle数据库安装与配置 安装Oracle数据库涉及选择适当的版本(如...

Global site tag (gtag.js) - Google Analytics