資料庫學習2

2021-08-09 23:18:11 字數 2038 閱讀 1343

分頁查詢2:

select * from (

select rownum cols,t.* from 

(select ename,sal from emp

order by sal desc) t where rownum <= 10)

where cols between 6 and 10

在加編號時優化,可以對不必要的資料篩去,如果資料特別多,效率就會好點

decode函式:

類似於switch

decode(expr,search1,result1,search2,result2....default)

如果 expr 等於 search1  返回result1 

如果expr 等於search2 返回 result2 

否則返回default

類似decode  的函式case  實現類似if-else 的功能:

select ename,job,sal,

case job when 'manager' then sal*1.2

when 'analyst' then sal*1.2

when 'salesman' then sal*1.05

else sal end

bonus

from emp

兩種結果是一樣的

分組select count(rex),rex from(

select ename,job,decode(job,'manager','vip',

'analyst','vip',

'salesman','pr',

'or') rex

from emp

)group by rex

order by 排序中的應用:

select * from dept

order by decode(dname,

'operations',1,

'research',2,

'sales',3) 

改變排序方式

排序函式: 排序函式允許對結果集按照指定的字段分組在組內再按照指定的字段排序,最終生成組內編號

1、row_number 函式

--檢視各部門的組內工資排名

select ename,sal,deptno,

row_number() over(

--分組依據:

partition by deptno

--排序依據

這時就有乙個問題,有工資相同但是排名卻 不一樣,因為row_number 生成的編號是唯一的。

這就有了第二個排序函式  rank()

2、rank()函式:生成組內不連續也不唯一的數字,跳號

--檢視各部門的組內工資排名

select ename,sal,deptno,

--row_number() over(

rank() over(

--分組依據:

partition by deptno

--排序依據

3、 dense_rank ()函式 ,生成組內不連續但不唯一的數字(不跳號)

寫法都一樣,這就不重複寫了

資料庫學習2

劉江 11511010019 葉公正 11511010024 資料庫的建立,檢視,使用,刪除,備份,還原 表的建立,檢視,刪除,使用,重新命名,加入記錄,顯示表結構。資料庫的建立 mysql create database access 檢視 mysql show database access 使...

資料庫學習筆記2

1.檢視 概念 檢視時從乙個或幾個基本表 或檢視 匯出的表。它與基本表不同時乙個虛表,資料庫中只存放檢視的定義,而不存放檢視對應的資料,這些資料仍然存放在原來的基本表中。所以一旦基本表發生變化,從檢視中查詢的資料也隨之改變。語句 create view is student as select sn...

資料庫學習雜記2

今天晚上看了下資料庫,關於的是一些關係模式!看的有點吃力,太抽象了,原本現實中很簡單的問題切搞的那麼複雜。看了一點發現一些特點 資料庫設計同樣有程式方法概念 輸入 外來資料 操作 關係演算 輸出 資料輸出顯示 硬資源 原有資料 就拿學校選課系統來說吧 老師,課程,學院等這些我稱之為硬資料,雖然有的時...