1.集合

  --集合操作: 并集、交集、差。

    select deptno,job,sum(sal) from emp group by deptno,job
    union
    select deptno,to_char(null),sum(sal) from emp group by deptno
    union
    select to_number(null),to_char(null),sum(sal) from emp;

    select deptno,job,sum(sal)

    from emp

    group by rollup(deptno,job);

上述两种表达结果相同。

  -- 集合操作需要注意的事项:

    1). 集合的所有列应该数量相同,类型相同。

    2). 集合操作的结果以第一条sql语句的表头为表头。

    3).集合操作尽量少用。

2.数据处理

  SQL 的类型:
    1). DML : 数据操作语言 insert/update/delete/select
    2). DDL : 数据定义语言 create/alter/drop/truncate
    3). DCL : 数据控制语言 grant(授权) revoke(移除授权)

    -- insert 向表里面添加一行记录

      (1)出入一行里的某些数据

        insert into emp(empno,job,sal) values(2016,'SAL',8000);

      (2)按照表的顺序插入一行里的所有的数据

         insert into emp values(2015,'zhangsan','MANAGER',2016,'18-3月-16',5000,3000,20);

    -- 自定义日期的格式

        alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';

    -- create 创建一个表

      -- 用模板快速的创建一个表

        create table testemp as select * from emp where 1= 2;

        -- 快速的插入数据

          insert into testemp select * from emp;        -- 批量操作的时候不要加关键字

       -- 创建一个没有模板的表

          create table testemp1(
                    id number(5),
                    name varchar(20),
                    weight number(5,2)
                    );

              -- varchar 和varchar2 都可以用来表示字符串,但是在oracle中推荐用varchar2。varchar是每一个字段固定占N个字节,不管内容是否足够N个长度;varchar2 会根据内容自己调整他的长度。   

     --delete 删除数据

        delete from emp where empno=2016 or empno=2015;

        rollback:回滚,如果你删除错误以后可以用rollback来回滚数据。

          可以创建一个回滚的节点:savepoint a;

          然后再回滚:rollback to a;

          -- dml 可以闪回,ddl不能。

     -- 格式化表 truncate

        truncate table testemp;

      delete 和truncate 删除数据有什么差别?
        (1). delete 是逐行删除,truncate是先删除表,在重新创建一个新表
        (2). delete 能够闪回(flashback),而truncate不能闪回
        (3). delete 不会释放内存空间,而truncate会
        (4). delete 会产生碎片,而truncate不会
        (5). delete 是DML语句,truncate是一个DDL语句

        (6).delete 不会真正的将数据删除,它将所有的数据移到一个叫undo表空间里面。

    -- drop 操作

      drop table testemp;  删除表 testemp

    -- 事物: 一连串的DML,形成的一个原子操作

      事物什么时候开启:
          (1). 显示的开启: start transaction
          (2). 隐式开启: 执行的第一个DML语句
      事物什么时候关闭:
          (1). 显示关闭: commit,rollback;
          (2). 隐式关闭
              >> 正常关闭: 执行了一个DDL操作的时候
              >> 非正常关闭: 断电断网....

    --导入一个脚本里的sql语句

      格式:  @d:/testdelete.sql;

    -- 打开sql执行的时间
        set timing on
    -- 关闭oracle的回调显示
        set feedback off;

    -- update 操作

        -- 从emp表更新名字为KING的工资为20000
          update emp set sal=10000 where ename='KING';

    --alter 修改表

         -- 在emp中追加一个列 photo,数据类型为varchar2(20)。

            alter table emp add photo varchar2(20);

        -- 修改photo的字符串长度为50

            alter table emp modify photo varchar2(50);  

        -- 修改photo这个列的列名为photos

            alter table testemp10 rename column photo to photos;

        -- 删除photos列

            alter table emp drop column photos;

        -- 修改emp 表名称

             rename emp to testemp;

        -- 删除testemp;
            drop table testemp;

          

                    

      

Oracle Day05 集合与数据处理的更多相关文章

  1. Oracle的集合运算符

    Oracle的集合运算符有并集union.union all,交集intersect,差集minus 先建表myemp,进行集合运算的测试 create table myemp as select * ...

  2. 【oracle】-集合运算:UNION,UNION ALL...

    在Oracle中提供了三种类型的集合操作: 并(UNION).交(INTERSECT).差(MINUS) UNION:求并,重复记录只显示一次. UNION ALL:求并集,显示所有记录信息. INT ...

  3. 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算

     1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...

  4. oracle之集合操作函数---minus、union、intersect

    集合操作符专门用于合并多条select语句的结果,包括:UNION,UNION ALL,INTERSECT,MINUS.当使用集合操作函数时,需保证数据集的字段数据类型和数目一致. 使用集合操作符需要 ...

  5. Oracle day05 索引_数据去重

    索引 自动:当在表上定义一个primary key或者unique 约束条件时,oracle数据库自动创建一个对应的唯一索引. 手动:用户可以创建索引以加速查询 在一列或者多列上创建索引: creat ...

  6. Oracle day05 建表_约束

    表的创建 标准的建表语法 : CREATE TABLE [schema.] table (column datatype [DEFAULT expr], ... ); 使用子查询创建表的语法 CREA ...

  7. day05 集合

    今日进度(数据类型) 集合 内存相关 深浅拷贝 1.集合表示 1.无序 2.不重复 3.hash查找 #问题:v={}表示? set: v1=set()#空集合 v1={1,2,3,4,5} dict ...

  8. 修改oracle字符集合

    SQL> conn /as sysdbaSQL> shutdown immediate;SQL> startup mountSQL> ALTER SYSTEM ENABLE R ...

  9. 【转载】Jsp页面传Json数据到服务端,转对象或集合进行数据处理

    需求:1.将页面数据带到服务端并转成对象,2.将页面的集合数据带到服务端转List实现:用ajax请求传递数据,数据格式为json JS方法: testJsonMethod = function(){ ...

随机推荐

  1. Haskell Json数据处理

    json的基本类型为——string, numbers, Booleans以及null,定义json类型如下 -- file: Json.hs module Json where data JValu ...

  2. 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 转载

    最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在chrome,firefox,safari,opera,360浏览器(极速模式).搜狗浏览器等浏览器下均没 ...

  3. HDU 5795 A Simple Nim(SG打表找规律)

    SG打表找规律 HDU 5795 题目连接 #include<iostream> #include<cstdio> #include<cmath> #include ...

  4. Ansible Lookup

    1.  文件内容的读取 --- - hosts: all vars: contents: "{{ lookup('file', '/etc/foo.txt') }}" tasks: ...

  5. ntp升级

    1. 系统与软件版本 1.1 系统版本 CentOS6.5 x86_64 1.2 ntpd软件版本 ntp-4.2.8p9.tar.gz 1.3 下载地址 官方下载地址:http://support. ...

  6. SQLServer 重建索引前后对比

    在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建. 执行一下语句:先分析表的索引 分析表的索引建立情况:DBCC showcontig('Table') ...

  7. Spark Streaming的wordcount案例

    之前测试的一些spark案例都是采用离线处理,spark streaming的流处理一样可以运行经典的wordcount. 基本环境: spark-2.0.0 scala-2.11.0 IDEA-15 ...

  8. SQLite安装

    SQLite 的一个重要的特性是零配置的,这意味着不需要复杂的安装或管理.本章将讲解 Windows.Linux 和 Mac OS X 上的安装设置. 一.在Windows上安装SQLite 访问SQ ...

  9. Activity生命周期方法调用finish后的不同表现

    今天宿舍一个哥们出去面试遇到了这个面试题:"在activity oncreate()调用finish()"生命周期是怎么样的? 我赶紧写了些demo,发现确实很有趣: packag ...

  10. android 进程和线程管理

    进程和线程的概念: 进程:程序的运行实例. 线程:cpu调度基本单位. Activity启动的时候,启动一个主线程,两个binder线程. 主线程实如何产生的?ZygoteInit启动,经由一系列调用 ...