Oracle資料庫系列一

2021-08-20 12:27:16 字數 1837 閱讀 9876

平常工作和學習過程中總結的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演算法生成,有順序,固定長度。缺點 強依賴機器時...