Oracle資料處理,oracle大資料處理

來源:互聯網
上載者:User

Oracle資料處理,oracle大資料處理
DML語言            &:地址符;(PrepareStament)            批處理:插入--------一次將10號部門的員工插入新的表中;                            其不必書寫values語句;子查詢中的值列表應與insert中子句中的列名對應;                          delete與truncate的區別:1;delete逐條刪除,而truncate先摧毀表,然後在建立表;                                                                    2:主要區別是兩種不同的語言;                                                                    3;delete不會釋放空間,而truncate可以;                                                                    4:delete刪除時會產生片段,而truncate不會產生;                                                                    5:delete可以閃回,而truncate不可以閃回;                          set feedback off 命令:不顯示執行語言;            執行硬碟上的sql指令碼命令:如:@c:\sql.sql; 測試得出:delete操作速度快;            
DCL語言            Oracle的事物是自動開啟,手動提交(顯示:commit;隱式:正常退出,ddl語句) 復原(顯示:rollback;隱式:非正常退出,斷電,宕機);            通過儲存點savepoint能夠更好控制事物;建立儲存點的命令:savepoint 儲存點名;            Oracle支援的事物層級:READ COMMITED(default),SERIALIZABLE,READ ONLY;            
DDL語言            對象有12個            表:建立表時需要許可權,空間;我們可以通過子查詢快速建表,可以通過add,modfiy,drop,rename實現對錶欄位的修改;                    Oracle的資源回收筒:show recyclebin 查看資源回收筒;purge recyclebin 清空資源回收筒;並不是每個使用者都有資源回收筒,管理員沒有資源回收筒,普通使用者才會有資源回收筒;                    如何將資源回收筒的表取回?---閃回課程                    表的約束:not null,unique,primary key,foreign key,check;一般建立表和建立約束分開,便於閱讀;                    約束的例子:

create table student
(
pid number constraint student_PK primary key,
sname varchar2(20) constraint student_name_notnull not null,
gender varchar2(2) constraint student_gender check (gender in('男','女')),
email varchar2(20) constraint student_email_unique unique
constraint student_email_notnull not null,
deptno number constraint student_FK references dept(deptno) on delete cascade
)
            視圖:從表中抽出的邏輯上相關的資料集合;目的:簡化查尋;                      不建議:通過視圖對錶的修改;

            序列:sequences主要作用是給表的主鍵提供值,其有兩個屬性nextval,currval;                        其特點:其是個數組,存在於記憶體當中;                        資料不連續:復原,系統異常--停電,多張表使用一個序列;
            索引:提高查詢速度;                       如:create index myindex on emp(deptno,job);                                    同義字:別名
Oracle的plsql
            操作Oracle最快的語言是plsql;            變數的類型:基礎類型,引用性變數(%type),記錄性變數(%rowtype);            其賦值方式有兩種:“:=”和into關鍵字;            set serveroutput on 命令:開啟控制台列印輸出; accept num prompt '請輸入'命令是:接受鍵盤上輸入的內容;            plsql的if語句必須以 if end結束;
            游標:cursor用於儲存一個查詢返回的多行資料;其屬性:%isopen是否開啟;%rowcount記錄數;%notfound 沒有記錄;                        使用cursor首先open和最後close;Oracle最多支援300個游標;show paremeters 查看參數設定;                        案例:使用游標查詢員工的姓名和薪水,並列印;給員工漲工資,總裁1000,經理800,其它400;其也需要手動提交事物;                        帶參數的游標:其定義,開啟游標時帶參數,其它用法和不帶游標的用法相同;                        案例:查詢某個部門的員工姓名
            例外:系統內建的例外,自訂的例外;在Java中異常是向上處理機制,而plsql不能向上拋,                        在java中try。。catch。。finally 而plsql中只有try。。catch其寫法是exception when 。。then。。。                        在declare中自訂例外:例外名 exception; 使用raise跑出異常,異常會幫你自動關閉游標;

            執行個體一:統計每年入職的人數;            執行個體二:為員工漲工資,從最低工資調起沒人漲10%,但工資總額不能超過5萬元;請計算漲工資的人數和漲工資後的工資總額,並輸出漲工資人數和工資總額;
=====================================================預存程序(沒有返回值),儲存函數(有返回值),觸發器            Java不能直接調用plsql,而是寫成預存程序,儲存函數,讓後用Java來調用;            建立儲存過稱:create[ or replace] procedure 過程名(參數列表) as  plsql子程式體;參數類型及輸入輸出要標明;不要在儲存函數,預存程序中不要提交事物;           調用預存程序的方法:exec 過程名();在另一個plsql中調用:begin 過程名();end;這兩種方法;            建立儲存函數:create[ or replace] procedure 過程名(參數列表) return 返回值類型 as  plsql子程式體;             輸出參數適用out,預存程序,儲存函數都可以返回一個或者多個參數,其二者基本上沒有區別;            執行個體一:查詢某個部門中,所有員工的所有資訊                        需要包頭和包體:            當返回的結果是集合,可以使用游標來實現;            
                        

            
           





oracle資料處理

使用行轉列進行轉換一下就可以了,指令碼如下:
insert into othertable ( zddm, cjsj, f1110101, f1110102, f1110103 )select zddm, cjsj, sum(f1110101) f1110101, sum(f1110102) f1110102, sum(f1110103) f1110103 from (select zddm, cjsj, decode(xdm, '1110101', xsj, 0) f1110101, decode(xdm, '1110102', xsj, 0) f1110102, decode(xdm, '1110103', xsj, 0) f1110103 from table_name) a group by a.zddm, z.cjsj -- 如果是建立表的時候create table othertable asselect zddm, cjsj, sum(f1110101) f1110101, sum(f1110102) f1110102, sum(f1110103) f1110103 from (select zddm, cjsj, decode(xdm, '1110101', xsj, 0) f1110101, decode(xdm, '1110102', xsj, 0) f1110102, decode(xdm, '1110103', xsj, 0) f1110103 from table_name) a group by a.zddm, z.cjsj以上是資料項目代碼個數固定的時候可以這樣轉換,如果資料項目代碼個數不確定的話,就要使用動態SQL了,最好寫個預存程序,每天來執行
有問題請追問,希望可以幫到你

 
oracle中對大資料處理有什方式?

一、大資料存放區方式:
1. BLOB,二進位大資料
2. CLOB,文本類型大資料
3. BFILE(推薦),檔案方式大資料,以串連(檔案位置)方式儲存,實際在資料庫外
4. RAW,二進位大資料(ORACLE老版本的,9i後逐漸被BLOB/CLOB/BFILE代替)
二、大資料的處理內建函數
1. BLOB/CLOB/BFILE:DBMS_LOB包
2. RAW:UTL_RAW包
 

相關文章

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.