Oracle Day05 集合與資料處理

來源:互聯網
上載者:User

標籤:

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,sal

    from emp

    group by rollup(deptno,job,sal);

上述兩種表達結果相同。

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

    1). 集合的所有列應該數量相同,類型相同。

    2). 集合操作的結果以第一條sql語句的表頭為表頭。

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

2.資料處理

  SQL 的類型:
    1). DML : 資料操作語言 insert/update/delete/select
    2). DDL : 資料定義語言 (Data Definition Language) 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 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操作的時候
              >> 非正常關閉: 斷電斷網....

      

        

      

Oracle Day05 集合與資料處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.