Oracle第二章 排序和條件限制

2021-08-27 03:52:15 字數 2537 閱讀 2628

第二章:排序和條件限制

select [distinct] {column_name..|*|exp|alias_name

from table_name

oeder by column_name 排序的標記

執行順序:from ->select ->order by

order by 優先順序最低,總是最後執行

排序的標記:asc公升序(可省略,預設) desc降序

查詢員工的名字的薪水,薪水以公升序排序select last_name,salary from s_emp order by salary asc;

注意:排序的列可以不出現在排序的後面

order by後面也可以直接跟角標,該角標是select後面排序列的位置,角標從1開始

select last_name,salary from s_emp order by 2 desc;

order by後面可以跟多個排序規則,先按照第乙個排,第乙個排相等,在按照第二個排序

select id,last_name,salary from s_emp order by salary asc,2 asc;

如果排序的列出現null值,你可以認為null是無窮大

select id,last_name,commission_pct from s_emp order by commission_pct;

注意:排序的時候,公升序null值在後面,降序null值在後面。

建議:排序的時候對有null的值排序,可以追加其他的排序列

條件限制語句

select [distinct] {column_name..|*|exp|alias_name

from table_name

where 條件

oeder by column_name 排序的標記

執行順序:from ->where ->select ->order by

注意:from查詢的是整張表的內容,where是對from查詢的整張表內容進行一行一行的篩選,

符合條件的留下,不符合條件的忽略,盡量不寫where

邏輯比較符 = < > <= >=

查詢部門標號為41號的部門資訊 select id,name,region_id from s_dept where id=41;

注意:字串和時間型別的值用單引號引起來,字串值表示的時候區分大小寫,

中文環境的時間格式是dd-mon-yy,英文環境dd-mm-yy

查詢入職時間大於等於2023年1月1日的員工資訊

select id,last_name,salary,star_date from s_emp where start_date>='01-1月-90'

sql比較符

between and 在某乙個範圍之內,閉區間[x,y] 

查詢員工工資在795到1450直接的員工資訊

select id,last_name,salary from s_emp where salary between 795 and 1450;

not between and

查詢員工工資不在795到1450直接的員工資訊(找出薪水小於795和大於1450的員工資訊)

select id,last_name,salary from s_emp where salary not between 795 and 1450;

in(list) 在某乙個範圍

查詢部門為41或43號部門的員工資訊

selece id,last_name,salary,dept_id from s_emp where dept_id in(41,43);

not in(list) 不在某乙個範圍

and 並且(前後兩個條件都要成立)

or 或者(前後兩個條件只要成立乙個就行)

注意:and和or並存的時候 and優先順序高於or

不相等 <> != ^=

查詢除了部門為41或43號部門的其他部門的員工資訊

selece id,last_name,salary,dept_id from s_emp where dept_id!=41 and dept_id<>43;

like 模糊查詢,模糊匹配    _表示單個字元的佔位 %表示匹配0到多個字元 &_手動輸入字元代替_

查詢使用者名稱第二個字母是m的員工資訊

select id,last_name,salary feom s_emp where last_name like '_m%';

轉義 可以是任意的符號,escape單詞限定的都可以作為轉義

查詢以_開頭的員工資訊

insert into s_emp(id,last_name) values(26,'_zhangsan');

select id,last_name,salary from s_emp where last_name like '\_%' escape '\'

is null判斷是否為空

查詢沒有薪水的員工資訊

select id,last_name,salary from s_emp where salary is null;

is not null判斷不為空

第二章 快速排序

快速排序演算法也是基於分治思想的一種排序演算法,它的基本操作即為比較 交換。快速排序演算法的基本思想是從待排序的序列中選取乙個比較標準k 通常選取第乙個元素 然後將其餘元素依次跟k進行比較。在比較的過程中將大於k的元素移到k的後面,將小於k的元素移到k的前面,最後的結果是將原始序列分為兩個子串行,而...

演算法 第二章排序

目錄 初級排序 選擇排序 插入排序 希爾排序 歸併排序 自頂向下排序 自底向上排序 快速排序 優先佇列 初級排序 一 選擇排序 簡述 選擇排序就是遍歷一遍陣列把最小的和第乙個數字交換。第二遍遍歷陣列時候選擇和第二個交換,一次類推。注意不要在for迴圈中用a.length 不然每次都要獲取a.leng...

演算法第二章 快速排序

先把快速排序的 實現貼上來,太晚了,過程改天再加上!快速排序就是把乙個數拿出來,然後把小於這個數的扔到一邊,把大於它的扔到一邊,那這個數就在正確的位置上了 然後把這個數的左邊分成乙份,右邊分成乙份,再把這兩份進行剛才的做法,一直不停地這樣做,直到不能再分。接下來就要說明怎麼把小於它的數扔到一邊,大於...