操作大数据集

简介: 一、子查询插入数据 1、语法INSERT INTO table [ column (, column) ] subquery; 2、说明:    您可以使用INSERT语句向一个表中添加行,其中的值来自于查询结果集。

一、子查询插入数据

1、语法
INSERT INTO table [ column (, column) ] subquery; 
2、说明:
   您可以使用INSERT语句向一个表中添加行,其中的值来自于查询结果集。
   插入子句的列列表中列及其数据类型的数量必须与子查询中的值和数据类型相匹配。
3、例句:
INSERT INTO EMPL3
SELECT * 
  FROM employees;

二、WITH CHECK OPTION

1、语法:
insert into (<select clause> WITH CHECK OPTION) values (...)
2、说明:
   insert进subquery里的这张表里
   如果不满足subquery里的where条件的话,就不允许插入。
   如果插入的列有不在subquery作为检查的where条件里,那么也会不允许插入。
   如果不加WITH CHECK OPTION则在插入时不会检查。
   这里注意,subquery其实是不会实际执行的。
3、例句
INSERT INTO
  (SELECT EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID, SALARY
     FROM EMPLOYEES
    WHERE DEPARTMENT_ID = 50 WITH CHECK OPTION)
VALUES
  (99998,
   'Smith',
   'JSMITH',
   TO_DATE('1999-06-07', 'yyyy-mm-dd'),
   'ST_CLERK',
   5000);

三、INSERT ALL

1、语法:
   a) 无条件
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause values_clause] (subquery)
   b) 有条件
INSERT [ALL]
[WHEN condition THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]
2、说明
   a) 如果没有when条件,则会对所有表进行插入操作
   b) 如果有when条件,则对每一个when条件都进行检查,如果满足条件就执行插入操作。
3、例句:
--无条件
INSERT ALL 
  INTO SAL_HISTORY
VALUES (EMPID, HIREDATE, SAL)
  INTO MGR_HISTORY
VALUES (EMPID, MGR, SAL)
SELECT EMPLOYEE_ID EMPID, HIRE_DATE HIREDATE, SALARY SAL, MANAGER_ID MGR
  FROM EMPLOYEES
 WHERE EMPLOYEE_ID > 200;
 
 --有条件
 INSERT ALL 
  WHEN SAL > 10000 
  THEN INTO SAL_HISTORY
VALUES (EMPID, HIREDATE, SAL) 
  WHEN MGR > 200 
  THEN INTO MGR_HISTORY
VALUES (EMPID, MGR, SAL)
SELECT EMPLOYEE_ID EMPID, HIRE_DATE HIREDATE, SALARY SAL, MANAGER_ID MGR
  FROM EMPLOYEES
 WHERE EMPLOYEE_ID > 200;

四、INSERT FIRST

1、语法:
INSERT [FIRST]
[WHEN condition THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]
2、说明:
  对于每一行数据,只插入到第一个when条件成立的表,不继续检查其他条件。
3、例句:
INSERT FIRST 
  WHEN SAL > 25000 
  THEN INTO SPECIAL_SAL
VALUES (DEPTID, SAL) 
  WHEN HIREDATE LIKE ('%00%') 
  THEN INTO HIREDATE_HISTORY_00
VALUES (DEPTID, HIREDATE) 
  WHEN HIREDATE LIKE ('%99%')
  THEN INTO HIREDATE_HISTORY_99
VALUES (DEPTID, HIREDATE) 
  ELSE INTO HIREDATE_HISTORY
VALUES (DEPTID, HIREDATE)
SELECT DEPARTMENT_ID DEPTID, SUM(SALARY) SAL, MAX(HIRE_DATE) HIREDATE
  FROM EMPLOYEES
 GROUP BY DEPARTMENT_ID;

五、MERGE

1、语法:
MERGE INTO table_name table_alias
  USING (table|view|sub_query) alias
  ON (join condition)
  WHEN MATCHED THEN
    UPDATE SET 
    col1 = col_val1,
    col2 = col2_val
  WHEN NOT MATCHED THEN
    INSERT (column_list)
    VALUES (column_values);
2、说明:
  Merge用来从一个表中选择一些数据更新或者插入到另一个表中。而最终是用更新还是用插入的方式取决于该语句中的条件。
3、例句:
MERGE INTO empl3 c
USING employees e
   ON (c.employee_id = e.employee_id)
 WHEN MATCHED
 THEN UPDATE SET
      c.first_name = e.first_name,
      c.last_name = e.last_name,
      ...
      c.department_id = e.department_id
 WHEN NOT MATCHED
 THEN INSERT VALUES
      (e.employee_id, e.first_name, e.last_name,
       e.email, e.phone_number, e.hire_date, e.job_id,
       e.salary, e.commission_pct, e.manager_id, 
       e.department_id);

六、Flashback Version Query

1、语法:
VERSIONS BETWEEN TIMESTAMP [lower bound] AND [upper bound]
VERSIONS BETWEEN SCN [lower bound] AND [upper bound]
2、说明:
  通过versions between能够查看指定时间段内undo表空间中记录的不同版本
3、例句:
SELECT SALARY
  FROM EMPLOYEES3 VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE
 WHERE EMPLOYEE_ID = 107;
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
3月前
|
数据处理 开发工具 git
coco2017数据集转换为yolo格式(记录过程)
最近做一个yolov5的落地应用项目,用的anylabeling打标,需要将coco2017的数据集转为yolo格式,故写下记录过程!
|
8月前
|
数据采集 机器学习/深度学习 数据挖掘
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
285 0
|
机器学习/深度学习 存储 PyTorch
【14】自定义宝可梦数据集
【14】自定义宝可梦数据集
207 0
【14】自定义宝可梦数据集
|
SQL 测试技术
|
8月前
|
机器学习/深度学习 前端开发 测试技术
数据集相关知识
数据集相关知识
210 0
|
8月前
JetBotAI 进行数据集训练脚本
JetBotAI 进行数据集训练脚本
32 1
|
存储 编解码 数据安全/隐私保护
ISPRS Vaihingen 数据集解析
ISPRS Vaihingen 数据集解析
710 0
ISPRS Vaihingen 数据集解析
|
XML JSON 算法
【数据集转换】VOC数据集转COCO数据集·代码实现+操作步骤
与VOC一个文件一个xml标注不同,COCO所有的目标框标注都是放在一个json文件中的。
920 1
|
机器学习/深度学习 数据采集 算法
UCI数据集详解及其数据处理(附148个数据集及处理代码)
UCI数据集详解及其数据处理(附148个数据集及处理代码)
1166 1
|
存储 数据可视化 数据挖掘
大五人格测试数据集的探索
大五人格测试数据集的探索
865 0
大五人格测试数据集的探索