Oracle起步學習(五) 過濾與排序

2021-06-26 11:50:25 字數 2823 閱讀 7263

一、過濾我就不細說了,where語句大家都會用的麼。

1.標準條件查詢(

字串大小寫敏感,日期格式敏感

)select 列名 from 表名 where condiaction1 [ and/or condition2 ...] 

eg:select * from emp where sal > 1000;

select * from emp where sal >2000 and deptno = 20;

注意:這裡需要注意引數的預設設定,可以這樣查詢:select * from v$nls_parameters;

nls_date_format引數注意了啊,dd-mon-rr格式,日期格式為 「日-月-年」;

可以自己更改:alter session set nls_date_format='yyyy-mm-dd',就可以按照自己的日期查詢了。

select * from emp where hiredate='1981-11-17';

2.in (set) 等於值列表中的乙個

select 

列名from 

表名where列名 in  (條件1,條件2...)  [

and/or condition2 ...]

eg:select * from emp where deptno in (10, 30,null);--查詢部門號為10,或者30,或者為空的員工

select * from emp where deptno not in (10,30);--查詢部門號不為10,或者30的員工

注意:如果集合中含有null,查詢中不可以使用 not in ,但可以使用in

3.like模糊查詢,萬用字元:%,_

select 

列名from 

表名where 列名 like "萬用字元+條件+萬用字元"  [

and/or condition2 ...] 

(條件中存在萬用字元可以設定轉義字元:  like "\

萬用字元+條件+萬用字元

" escape '\',其中'\' 可以為任何字元)

eg:select * from emp where ename like 's%';--查詢姓名首字母為 's'的員工

select * from emp where ename like '____';--查詢姓名為四位數的員工

insert into emp(empno,ename,sal,deptno) values(1001,'abc_abc',1000,20);

select * from emp where ename like 'abc\_abc' escape '\';--先插入資料,其次查詢含有'_'線的員工。

4.betweencondication1 and condication2 (包括邊界)

select 

列名from 

表名where 列名between

condication1

and

condication2

eg:select * from emp where sal between 1000 and 5000;--查詢薪水在為1000到5000的員工,包含1000,5000。

二、排序: order by

1.公升序排序 aesc

select * from emp order by sal; --select * from emp order by sal aesc; 相同的

select ename,sal from emp order by sal;

2.降序排序desc

小技巧:以為上條語句為:

select * from emp order by sal;所以有一下語句

a desc;

效果為:

然後輸入'/'回車查詢即可。

效果就是:

select ename,sal from emp order by sal desc;

還有也可以使用序號去排序:

select ename,sal from emp order by 2 desc;--用序號代替sal

3.order by 後面+多列;先按照order by 後第一列排序,然後是第二列,以此類推

select * from emp order by sal,deptno;--結果按照sal公升序,然後deptno公升序排序

select * from emp order by sal,deptno desc;--結果按照sal公升序,然後deptno降序排序(距離desc最近的)

select * from emp order by sal desc,deptno desc;--結果按照sal降序,然後deptno降序排序

4.當含有空值時。

select * from emp order by comm;--公升序

select * from emp order by comm desc;--降序

發現了吧,是不是應該把空值排到最後呢。這樣寫:

oracle起步學習1 循序漸進

學習定要遵循循序漸進的規則,否則學到後面便會發現學習越來越吃力,因為之前的基礎不懂 oracle基礎學習要學會建表,但是建表之前必須會建表空間,會建使用者,因為乙個表是誰建的,建在哪個表空間都狠重要,我在嘗試的時候就遇到2個錯誤,但是後來解決了,在網上各位大蝦的指導下。問題 1.表建在哪個表空間2....

oracle學習筆記五

top n 分析的語法 select column list rownum from select column list from table order by top n column where rownum n select empno,ename,job from select rownu...

oracle學習筆記五

top n 分析的語法 select column list rownum from select column list from table order by top n column where rownum n select empno,ename,job from select rownu...