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

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

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断裂引发的级联故障三、解决方案:修复