久久精品国产亚洲怮怮_奇米网777色在线精品_亚洲色中文字幕制服丝袜_久久精品人人做人人看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle 常用小知識點匯集

發(fā)布時間:  2012/9/5 17:44:37

使用sqlldr導入數據:

1.control控制文件的寫法:
load data
infile 'E:\netbu.csv'
insert
into table temp_zhuren_need
FIELDS TERMINATED BY ','
TRAILING NULLCOLS --表的字段沒有對應的值時允許為空(空格,空白,null都為空)-
 

(BELONG_CODE,RUN_NAME,PHONE_NO)

2.命令行語句:
sqlldr name/pass@tnsname control='E:\ctl.txt' log='E:\log.txt'
注釋:若要中途斷了,可以查看日志,入庫了多少行,然后使用skip=入庫了的行數,就可以繼續(xù)追加了。但是注意把insert改為append。

Oracle CASE的兩種用法:

例子1:
select product_id,product_type_id,
case product_type_id
when 1 then 'Book'
when 2 then 'Video'
else 'Magazine'
end ----注意end不能少
from products
例子2:
    select product_id,product_type_id,
case
when product_type_id=1 then 'Book'
when product_type_id=2 then 'Video'
else 'Magazine'
end ----注意end不能少
from products
注意:when這里的條件可以是多個,用and,or連接

在看一個復合的例子:

select t.phone_no1204,
nvl(t.phone_no1201,t.phone_no1204) as "phone_no1201",
nvl(t.phone_no1110,t.phone_no1204) as "phone_no1110",
nvl(t.phone_no1107,t.phone_no1204) as "phone_no1107",
case
when t.phone_no1204=nvl(t.phone_no1201,t.phone_no1204)
and t.phone_no1204=nvl(t.phone_no1110,t.phone_no1204)
and t.phone_no1204=nvl(t.phone_no1107,t.phone_no1204)
then '0'
else '1'
end as phone_no1101
from mark_518_t9 t

 

 

instr()函數,特殊用法 --instr()函數代替like,IN

instr()返回值是目標字符(串)在母字符里第一次出現的位置,故而是整數。

例如:

instr("efabcdefg","e")的結果當然是1
instr(2,"efabcdefg","e")的結果就是7
instr(5,"efabcdefg","a")的結果就是0
instr("efabcdefg","k")的結果也是0


instr是內置函數,他是會走索引的,性能好。

like不一定。like '%iii%’是不走索引的,like ‘ik%’走索引。

例如:
SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0;
等同于===>
SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ;

代替in:
SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002');
等同于===>
SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A10002',code)>0


 

組合索引

在Oracle 中可以創(chuàng)建組合索引,使用表中多個字段的組合作為索引的鍵值。當我們進行查詢時可以使用”where col1 = ?”,也可以使用”where col1 = ? and col2 = ?”,這樣的限制條件都會使用索引,但是”where col2 = ?”查詢就不會使用該索引。所以限制條件中包含先導列時,該限制條件才會使用該組合索引

創(chuàng)建組合索引的方法:

create index index_name on table_name (column_name1,column_name2)

 

minus與intersect的使用
minus是A中存在,B中不存在的部分
intersect是AB的交際
eg:
select job from accounts
intersect/minus
select job from sales;


 Oracle set命令
SQL>set colsep' '; //-域輸出分隔符
SQL>set echo off; //顯示start啟動的腳本中的每個sql命令,缺省為on
SQL> set echo on //設置運行命令是是否顯示語句
SQL> set feedback on; //設置顯示“已選擇XX行”
SQL>set feedback off; //回顯本次sql命令處理的記錄條數,缺省為on
SQL>set heading off; //輸出域標題,缺省為on
SQL>set pagesize 0; //輸出每頁行數,缺省為24,為了避免分頁,可設定為0。
SQL>set linesize 80; //輸出一行字符個數,缺省為80
SQL>set numwidth 12; //輸出number類型域長度,缺省為10
SQL>set termout off; //顯示腳本中的命令的執(zhí)行結果,缺省為on
SQL>set trimout on; //去除標準輸出每行的拖尾空格,缺省為off
SQL>set trimspool on; //去除重定向(spool)輸出每行的拖尾空格,缺省為off
SQL>set serveroutput on; //設置允許顯示輸出類似dbms_output
SQL> set timing on; //設置顯示“已用時間:XXXX”
SQL> set autotrace on-; //設置允許對執(zhí)行的sql進行分析
set verify off //可以關閉和打開提示確認信息old 1和new 1的顯示.

查看/恢復回收站的表

select * from recyclebin t where t.original_name like 'MB_G%';
或者 show recyclebin
flashback table MB_G_2009 to before drop;

篩選oralce表中某列是漢字還是字符的方法:
SQL> select * from aa;

A B
---------- ----------
1 aaa
1 11111
1 書

方法1:
原理:asciistr()函數對非ASCII代碼,會轉換成二進制,且前面加\ ;所以asciistr(acolumn) 如果是漢字;轉換出來的會有 \
SQL> select aa.* from aa where asciistr(b) like '\%' ;

A B
---------- ----------
1 書
方法2:
原理:通過截取第一個字符的長度來判斷。
SQL> select aa.* from aa where lengthb(substr(b,1,1))=2 ;

A B
---------- ----------
1 書

擴展的GROUP BY
所謂的擴展的GROUP BY就是使用了分析函數rollup() 和 cube()。

rollup():使分組結果中包含小計及總計信息,并可以傳入多列字段
cube():對做為參數傳入的每一列都進行小計,多列的時候能顯示優(yōu)勢。
例:
select id,sum(mount) from tt group by rollup(id);
ID SUM(MOUNT)
---------- ----------
1 60
2 150
3 240
4 210
5 440
1100
select id,sum(mount) from tt group by cube(id);
ID SUM(MOUNT)
---------- ----------
1100
1 60
2 150
3 240
4 210
5 440

或者,用nulls 顯示指定空值的首尾位置:
select id,sum(mount) from tt group by cube(id) order by id nulls last;


 


本文出自:億恩科技【prubsntakaful.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線