Oracle第七課課後作業

2022-02-04 01:31:18 字數 2557 閱讀 8038

乙個公司有很多部門有上級部門

乙個員工有他所在的部門,根據員工編號找到他所在的所有上級部門。

編號姓名部門1

張三3012李四

401編號

名稱上級部門

301財務部

1111

集團中心22

財務總監

0顯示出張三的上級部門:財務部,集團中心,財務總監

-- 建立員工表

create table emp(id number(2) primary key,

name varchar(6) not null,

deptno number(4)constraint fk_dept references dept(id) );

insert into emp values(1,'張三',301);

insert into emp values(2,'李四',401);

select * from emp;

-- 建立部門表

create table dept(id number(4) primary key,name varchar(10) not null,pre_id number(4));

insert into dept values(301,'財務部',11);

insert into dept values(11,'集團中心',2);

insert into dept values(2,'財務總監',0);

insert into dept values(401,'保安部',null);

​-- 張三的上級部門

select * from dept start with id=(select deptno from emp where name='張三') connect by prior pre_id = id;

單行函式

多行函式

行轉列

create table resident(name varchar(6) not null,r_month number(2) not null,sal number(8) not null);

insert into resident values('趙一',1,10000);

insert into resident values('趙一',2,10500);

insert into resident values('趙一',3,9000);

insert into resident values('趙一',4,10030);

insert into resident values('趙一',5,10500);

insert into resident values('趙一',6,10000);

insert into resident values('趙一',7,12000);

insert into resident values('趙一',8,10500);

insert into resident values('趙一',9,10800);

insert into resident values('趙一',10,10900);

insert into resident values('趙一',11,10010);

insert into resident values('趙一',12,10800);

select * from resident;

drop table resident;

-- 顯示每個人每月的工資,以列的形式顯示,2020我國的平均收入是40000元左右,顯示該居民是否達到或拖後腿

select name,sum(decode(r_month,1,sal)) 一月,

sum(decode(r_month,2,sal)) 二月,

sum(decode(r_month,3,sal)) 三月,

sum(decode(r_month,4,sal)) 四月,

sum(decode(r_month,5,sal)) 五月,

sum(decode(r_month,6,sal)) 六月,

sum(decode(r_month,7,sal)) 七月,

sum(decode(r_month,8,sal)) 八月,

sum(decode(r_month,9,sal)) 九月,

sum(decode(r_month,10,sal)) 十月,

sum(decode(r_month,11,sal)) 十一月,

sum(decode(r_month,12,sal)) 十二月,

decode(trunc(sum(sal)/40000),0,'拖後腿','合格') 是否合格

from resident r group by name;

sql遞迴的實現:

-- select *  from xx strat with 從什麼地方開始  connect by prior 遞迴條件

-- 找id為1的子輩

select * from cow start with id=1 connect by prior id = parent_id;

Oracle第九課課後作業

輸出100以內的質數 定義3個變數 i 外迴圈,迴圈2到100的數 j 內迴圈,判斷從2到i 1是否能被整除 flag 是否是素數的標誌,執行完一次內迴圈,判斷flag的值,如果內迴圈中有被整除的,flag變為0,若沒有,flag值為1,輸出i declare local variables her...

Oracle第一課課後作業

節省空間,主要是在三正規化節省空間,表中只有別的表的乙個外來鍵,沒有多餘的字段 建立使用者 create user user test identified by user test 授予許可權 grant connect to user test grant resource to user te...

小甲魚41課課後作業

3.請問以下 存在什麼問題?class test def init self,x,y return x yinit方法只能return none 程式設計題 0.小李做事常常丟三落四的,寫 也是一樣,常常開啟檔案又忘記關閉。你能不能寫乙個fileobject類,給檔案物件進行包裝,從而確認在刪除物件...