OCP1z0-047 : 多表插入――pivoting insert(旋转插入)

这道题目的知识点是要了解Oracle 中的Insert用法

A、pivoting insert(旋转插入)

1、创建表marks_details

gyj@OCM> create table marks_details (
  2  student_id number(4) not null,
  3  subject_id1 number(2),
  4  marks_english number(3),
  5  subject_id2 number(2),
  6  marks_math number(3),
  7  subject_id3 number(2),
  8  marks_physics number(3),
  9  subject_id4 number(2),
 10  marks_chemistry number(3),
 11  subject_id5 number(2),
 12  marks_biology number(3)
 13   );  

Table created.

2、向表marks_details中插入一行数据

gyj@OCM> insert into marks_details values (1001,01,90,02,80,03,85,04,95,05,75);   

1 row created.  

gyj@OCM> commit;  

Commit complete.  

gyj@OCM> select * from  marks_details;  

STUDENT_ID SUBJECT_ID1 MARKS_ENGLISH SUBJECT_ID2 MARKS_MATH SUBJECT_ID3 MARKS_PHYSICS SUBJECT_ID4 MARKS_CHEMISTRY SUBJECT_ID5 MARKS_BIOLOGY
---------- ----------- ------------- ----------- ---------- ----------- ------------- ----------- --------------- ----------- -------------
      1001           1            90           2         80           3            85           4              95    5             75

3、创建表marks

gyj@OCM> create table marks (
  2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

Table created.

4、现在要将marks_details表的数据插入到marks表中

gyj@OCM> insert all
  2   into marks values(student_id,subject_id1,marks_english)
  3   into marks values(student_id,subject_id2,marks_math)
  4   into marks values(student_id,subject_id3,marks_physics)
  5   into marks values(student_id,subject_id4,marks_chemistry)
  6   into marks values(student_id,subject_id5,marks_biology)
  7   select student_id,subject_id1,marks_english,subject_id2,marks_math,subject_id3,
  8   marks_physics,subject_id4,marks_chemistry,subject_id5,marks_biology
  9   from marks_details;   

5 rows created.  

gyj@OCM> commit;  

Commit complete.  

gyj@OCM> select * from marks;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          1         90
      1001          2         80
      1001          3         85
      1001          4         95
          1001          5         75

这道题目就是考什么是pivoting insert?

B、Unconditional INSERT(无条件Insert all多表多行插入)

接着上面的题,继续创建表

gyj@OCM> create table marks_english (
  2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

Table created.  

gyj@OCM> create table marks_math (
  2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

create table marks_physics (
Table created.  

gyj@OCM> gyj@OCM>   2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

Table created.  

gyj@OCM> gyj@OCM> create table marks_chemistry (
  2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

Table created.  

gyj@OCM> gyj@OCM> create table marks_biology (
  2   studnet_id number(4) not null,
  3   subject_id number(2),
  4   marks number(3)
  5   );  

Table created.  

gyj@OCM> insert all
  2  into marks_english values(student_id,subject_id1,MARKS_ENGLISH)
  3  into marks_math values(student_id,subject_id2,MARKS_MATH)
  4  into marks_physics values(student_id,subject_id3,MARKS_PHYSICS)
  5  into marks_chemistry values(student_id,subject_id4,MARKS_CHEMISTRY)
  6  into marks_biology values(student_id,subject_id5,MARKS_BIOLOGY)
  7  select STUDENT_ID,SUBJECT_ID1,MARKS_ENGLISH,SUBJECT_ID2,MARKS_MATH,SUBJECT_ID3,MARKS_PHYSICS,SUBJECT_ID4,MARKS_CHEMISTRY,SUBJECT_ID5,MARKS_BIOLOGY
  8  from marks_details;  

5 rows created.  

gyj@OCM> commit;  

Commit complete.  

gyj@OCM> select * from marks_english;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          1         90  

gyj@OCM> select * from marks_math;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          2         80  

gyj@OCM> select * from marks_physics;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          3         85  

gyj@OCM> select * from marks_chemistry;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          4         95  

gyj@OCM> select * from marks_biology;  

STUDNET_ID SUBJECT_ID      MARKS
---------- ---------- ----------
      1001          5         75

C、ConditionalALL   (INSERT有条件的insertall)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索pivot
, number
, values
, student插入存储过程
, ACM杭电1001
marked
pivoting insert、mysql ocp 1z0 883、1z0 047、ocp 047 解析、ocp047和051的区别,以便于您获取更多的相关知识。

时间: 2024-12-28 20:27:08

OCP1z0-047 : 多表插入――pivoting insert(旋转插入)的相关文章

将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本

复制代码 代码如下:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: 华岭 -- Create date: 2008-10-28 -- Description: 将表数据生成Insert脚本 -- Demo : exec pCreateInsertScript 'BexmCodeType','dictypeid = 61' -- ===

java-Java怎么把从一张表查询到的字段插入到另外一张表

问题描述 Java怎么把从一张表查询到的字段插入到另外一张表 public void addObjectFields(Company c)throws SQLException{ Connection conn=DBUtil.getConnection(); String sql="" insert into cdpt_object_fields""+( object_idobject_nameobject_typefield_idfield_auto_idfiel

sqlserver-SQLSERVER 表A某列数据插入B表

问题描述 SQLSERVER 表A某列数据插入B表 strong text 例如: 表tableA: A B C D E F --列名 1 2 3 4 5 6 1 7 9 8 5 6 1 10 11 12 5 6 表tableB: H I J k L M --列名 我想把taleA 表中的BCD列数据提取出来 插入tableB 中 HIJ三列中形成新的一条数据.由于tableA中数据比较多,我想循环搜索和插入,请教如何实现. 解决方案 insert into tableB(H,I,J) sele

select-winfrom中如何把SqlServer数据库表查询出来的数据插入access数据库表中

问题描述 winfrom中如何把SqlServer数据库表查询出来的数据插入access数据库表中 sqlserver里面的数据是根据条件查询出来的,现在是把查询出来的数据,给他导入到access数据库中,但是不知道在C#后台中怎么写 跨数据库去执行insert select,求解啊啊啊啊啊啊 解决方案 大概的代码 DataTable table = new DataTable() SqlConnection sqlconn = new SqlConnection(connectionStr);

MySQL 当记录不存在时插入(insert if not exists)

问题:我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢? 答案:可以通过使用 EXISTS 条件句防止插入重复记录. 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:  代码如下 复制代码 INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id, supplier_name,

编程-VFP 更新表数据时自动把系统时间写入表中指定一列插入 如何实现自动写入数据

问题描述 VFP 更新表数据时自动把系统时间写入表中指定一列插入 如何实现自动写入数据 VFP编程 现有 成绩 用户 两表 成绩表 三列 成绩 修改时间 用户 用户表 两列 用户名 密码 其中插入与更新成绩后,自动提取系统时间 写入 "修改时间列"( 包含年月日的时间 ) 并且根据系统登录的用户,将用户名写入成绩表 用户列 修改时间以及 用户 这两列只能通过程序自动写入 不可以人为写入 现有两表 教师 用户 如何实现插入教师表中教师号一列的数据后 自动将数据插入到用户表中 用户名列 用

数据-多表关联按照一个地区插入到一张新表中。在线跪求各位大神,急急急!!!

问题描述 多表关联按照一个地区插入到一张新表中.在线跪求各位大神,急急急!!! 多表关联,我现有多张表,想将数据提取出来,按照一个地区插入到一张新表中,但是这些多张表,有的比如有西安,但是有的有没有西安,所以会造成数据的丢失,有什么好的方法可以解决?在线跪求各位大神,急急急!!! 解决方案 刚开始的的第一张表是没有西安的,informix库 解决方案二: 按照你说的要求,我觉得应该有张表的地区应该最为全面,就是说有一条主线可以将所有表都联立起来,然后可以以这张表为主表进行左联即可.. 解决方案三

快速插表-MYSQL 如果提升 MYSQL 插入数据库表的速度

问题描述 MYSQL 如果提升 MYSQL 插入数据库表的速度 我在插入 MYSQL 数据库表时 800 多个表 插入时间大 45 秒钟 速度太慢了. 解决方案 你的意思是如何插入数据, 还是创建表?感觉意思不是很清楚 解决方案二: 不明白你要创建那么多表做什么如果你需要创建那么多表, 而且表的结构都是统一的, 不妨每天晚上创建好一万个备用表(有就不用, 不够了才加).在需要创建表时,把备用表改一下名就得.

column-EXT中列布局时如何使用insert方法插入组件

问题描述 EXT中列布局时如何使用insert方法插入组件 比如说有3列,每列有4行,我想在第一节的第三行后面加一个combox,也就是第一列变成了5行.... 解决方案 http://blog.csdn.net/tianxiaode/article/details/46628303