平常工作和學習過程中總結的oracle資料的些許知識。
基本的查詢語法不是此文重點,在此只是將工作中常用的語法和函式和示例托舉而出。
1. 空值轉換函式
在資料庫欄位的查詢和簡單運算中,經常會遇到欄位為空的現象,需要對空做簡單處理,oracle提供兩種空值轉換函式:nvl() 和coalesce()。
如果欄位為空值,nvl返回值為表示式的值,否則返回欄位的值。該函式的目的是把乙個空值(null)轉換成乙個實際的值,空值轉化要求替換的數值要匹配原字段的資料型別。
nvl(comm,0),若comm是null則用0替換;
coalesce可以有多個引數,意思是取第乙個不為空的值,而nvl只能有兩個引數,只對第乙個引數做空值處理。2.模糊查詢
oracle中模糊查詢常用的就兩個字元(_和%)
//查詢所有名字中含有abc的人員資訊
select * from
user
where username like
'%abc%';
//查詢名字中第二個字元開始以abc開始的人員資訊
select * from
user
where username like
'_abc%';
//查詢含有_abc,使用\轉義
select * from
user
where username like
'\_abc'
escape
'\';
//查詢名字中含有'\'的
select * from user where username like '%\\%' escape '\';
3. 隨機查詢 dbms_random.value()函式
dbms_random是乙個可以生成隨機數值或者字串的程式包。這個包有initialize()、seed()、terminate()、value()、normal()、random()、string()等幾個函式,但value()是最常用的.
sql> select dbms_random.value() from dual;
dbms_random.value()
-------------------
0.265729284748573
-value()的用法常用的有兩種
沒有引數,會返回範圍從0.0到1.0的值,但不包括1.0,如下:
value帶有兩個引數,會返回兩個引數之間的值,沒有順序之分,將會生成下限到上限之間的數字,但不包含上限,如下:
常用的就是隨機獲取n條記錄:order by dbms_random.value();
select dbms_random.value() from dual
結果為:0.265729284748573
select dbms_random.value(1,7) from dual
select empno,ename from (select * from emp order
by dbms_random.value()) where rownum <=3
4.欄位的拼接使用 『||』 Oracle資料庫系列二
1.查詢結果排序 在查詢排序中,根據指定列排序,除了使用列名之外,還可以使用列的序號 如order by empno,empname order by 1,2 根據多個字段排序 order by a asc,b desc 2.字串擷取函式substr 語法 substr 字串,擷取開始位置,擷取長度...
資料庫 Oracle資料庫物件一
常見的資料庫物件 表 基本的資料儲存集合,由行和列組成 序列 提供有規律的數值 索引 提高查詢的效率 同義詞 給物件起別名 create table語句 create table許可權 儲存空間 資料型別 varchar2 size 可變長字元資料 預設4kb char size 定長字元資料 nu...
資料庫優化系列(一)
1 字段 2 禁用uuid string uuid uuid.randomuuid tostring replaceall 理由 uuid沒有順序,太長 儲存量大 不可控,字串儲存,查詢效率低 推薦方法 bigint或char儲存,用snowflake演算法生成,有順序,固定長度。缺點 強依賴機器時...