oracle9i学习笔记之十八 Oracle9i对DML和DDL语句的扩展

2023-12-16 21:32

本文主要是介绍oracle9i学习笔记之十八 Oracle9i对DML和DDL语句的扩展,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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;

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luyangever/archive/2008/12/13/3510773.aspx

这篇关于oracle9i学习笔记之十八 Oracle9i对DML和DDL语句的扩展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/501959

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示