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

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹