Oracle學習筆記(九) 查詢語句

2021-08-08 04:39:46 字數 3259 閱讀 3763

基本查詢語句

select [distinct] column_name1,...|* from table_name [where conditions]

sql*plus中設定格式

設定顯示名稱

column column_name heading new_name

colum可以簡寫為col

例項:col username heading 使用者名稱;

將username 變為使用者名稱(查詢顯示時)

結果顯示的格式設定

column column_name format dataformat

字元型別只能設定顯示的長度

例項:col username format a10;

將使用者名稱最大變為長度為10

數值型別設定,9代表一位數字 比如保留一位小數 9.9

col salary format 9999.9;

最長為4位,保留一位小數

如果不滿足的,不會輸出,利用#代替

為數值加$符號

col salary format $9999.9

設定後,數字都會帶乙個$符號

清除欄位的格式

column column_name clear

查詢表中的資料

查詢所用字段: select * from table_name;

查詢指定的字段:select  username,salary from users;

給字段設定別名

select column_name as new_name,... from table_name

這裡as可以省略

例項:select id as 編號 from table_name; 

distinct取出重複的值

運算子和表示式

oracle中的運算元可以有變數,常亮

算數運算子(+,-,*,/)

比較運算子(>,>=,<=,=,<>)

邏輯運算子(and,or,not)  

比較和邏輯運算子只能在where語句中使用

在select語句中使用運算子

使用算數運算子

例項:每個員工工資+200

select id,username,salary+200 from users;

這裡的計算不會影響表中的資料

使用比較運算子

例項:查詢員工的工資超過800的

select username from users where salary>800;

使用邏輯運算子

例項:工資查過800,並且工資不為1000的

select username from users where salary>800 and slary<>1000;

帶條件的查詢

where 子句

單一條件查詢

多條件查詢

模糊查詢

關鍵字:like

統配符的使用(_,%)

_(乙個字元)

% (0-n個字元)

查詢使用者名稱以a開頭的使用者

select  * from users where username like 'a%';

查詢使用者名稱的第二個字元是a的使用者資訊

select * from users where username like '_a';

使用者名稱中含有a的

select username from users where username like '%a%'

範圍查詢

between...and

查詢員工工資在800到2000中間

select * from users where salary between 800 and 2000;

in/not in 在/不在

查詢使用者名稱是aaa或者bbb的

select * from users where username in('aaa','bbb');

not in相反

對查詢結果排序

select .....from [where...]

order by column1 desc/asc, ...

desc降序,asc公升序,多個欄位用逗號隔開

例項:降序排序id

select * from users order by id desc;

case...when語句的使用

第一種形式

case column_name when value1 then result1,....[else result] end

放在select語句中

例項:根據使用者名稱顯示不同的部門

select username,case username when 'aaa' then 『計算機部門' when 'bbb' then '市場部門' else '其他部門' end as 部門 from users;

第二種形式

case when column_name =value1

then result1,..[else result] end

例項:根據使用者名稱顯示不同的部門

select username,case when username='aaa' then '計算機部門' when username='bbb' then '市場部門' else '其他部門' end as 部門 from users;

decode函式的使用

decode(column_name,value1,result1,...defaulvalue)

例項:select username ,decode(username,'aaa','計算機部門','bbb','市場部門',』其他') as 部門

from users;

Oracle學習筆記 九

十二 pl sql 1 pl sql程式的結構和組成 示例 給員工漲工資 根據職位漲工資 總裁漲1000 經理漲800 其他員工漲400 學習原因 1 運算元據庫效率最高 2 為了後期的儲存過程的學習 2 pl sql具體案例 set serveroutput on 列印hello world de...

Oracle 學習筆記(九)分頁查詢

上次筆記學到分頁查詢的三種方式 rowid 分析函式和 rownum,這次筆記重點學 rownum 方式的分頁查詢。1.查詢 emp 表為例 select from emp 2.顯示 rownum 由系統自己分配 select e.rownum rn from select from emp e r...

Oracle查詢語句

select sysdate from dual dual 臨時的表,使語法結構完整,沒有什麼意義。oracle中的select語句必須要有from 而sql2008中可以沒有。起別名 起別名 as起別名,不用加雙引號.加空格起別名,要加雙引號 select name as 姓名 from stud...