當前位置:首頁 » 編程語言 » oraclesql習題

oraclesql習題

發布時間: 2022-03-02 19:05:34

Ⅰ Oracle 中sql語句的一道題

給你個思路
具體我也沒試
select ename,job form emp where empno not in (select mgr from emp)
可能有點小問題 不過思路應該是這樣的,先查出有下屬的MGR的編號,然後看員工號在不在裡面 不在裡面就說明此人沒有下屬

Ⅱ Oracle 資料庫的一道SQL語句題

select y.dname,y.ename from

(select deptno,max(cnt) from
(select deptno,count(*) cnt where substr(trim(ename),1,1)='A' group by deptno)) x,

(select a.deptno,a.dname,b.ename from dept a,emp b where a.deptno=b.deptno and substr(trim(b.ename),1,1)='A') y

where x.deptno=y.deptno;

Ⅲ 誰有oracle sql語句練習題

1、選擇部門30中的雇員
select * from emp where deptno=30;
2、列出所有辦事員的姓名、編號和部門
select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where job=upper('clerk』);
3、找出傭金高於薪金的雇員
select * from emp where comm>sal;
4、找出傭金高於薪金60%的雇員
select * from emp where comm>sal*0.6
5、找出部門10中所有經理和部門20中的所有辦事員的詳細資料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and job=upper('clerk '));
6、找出部門10中所有經理、部門20中所有辦事員,既不是經理又不是辦事員但其薪金>=2000的所有雇員的詳細資料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and job=upper('clerk ')) or (job<>upper(『manager』) and job<>upper(『clerk』) and sal>=2000)
7、找出收取傭金的雇員的不同工作
select distinct job from emp where comm>0;
8、找出不收取傭金或收取的傭金低於100的雇員
select * from emp where nvl(comm,0)<100;
9、找出各月最後一天受雇的所有雇員
select * from emp where hiredate= last_day(hiredate);
10、找出早於25年之前受雇的雇員
select * from emp where months_between(sysdate,hiredate)/12>25;
select * from emp where hiredate<add_months(sysdate,-12*25);
11、顯示只有首字母大寫的所有雇員的姓名
select ename from emp where ename=initcap(ename);
12、顯示正好為6個字元的雇員姓名
select ename from emp where length(ename)=6
13、顯示不帶有'R'的雇員姓名
Select ename from emp where ename not like 『%R%』;
Select ename from emp where instr(ename,』R』)=0;
14、顯示所有雇員的姓名的前三個字元
select substr(ename,1,3) from emp
15、顯示所有雇員的姓名,用a替換所有'A'
Select replace(ename,』A』,』a』) from emp
16、顯示所有雇員的姓名以及滿10年服務年限的日期
Select ename,add_months(hiredate,12*10) 『服務年限的日期』 from emp

Ⅳ sql語句 oracle 10g習題

select 姓名,出生日期,avg(成績)over(partition by 班級) as 平均成績
from 學生信息;

根據你的問題,只能寫成這樣了,不過要提醒一句你的想法很有問題:
1、【由「班級」列匯總數據,然後輸出各班的平均成績】
根據這個要求一個班級只能出現一個平均成績,假設一個班有50名同學,最後匯總出來的數據就是一條。

2、由於【1】的原因,顯示【「姓名」和「出生日期」列】是不應該的,50個學生的信息顯示誰的?

3、我寫的sql是把每一個學生的信息全顯示了,並在每一條信息後面追加上班級的【平均成績】,根據你的要求和資料庫的限制只能這樣了。

---
以上,希望對你有所幫助。

Ⅳ 一道Oracle的SQL語句編寫題

A、select abs(sum(case when dept='Java' then 1
when dept='C++' then -1
end)) as Java專業和C++專業相差的人數
from student
where
dept ='Java' or dept ='C++';

B、select name,age from student
where age >(select max(age) from student where dept ='Java')

C、
select * from
(
select name, age from student
where age >(select avg(age) from student)
order by age
)
where rownum<=3

Ⅵ oracle sql查詢的一個習題,選擇所有員工的姓名、員工號、管理者姓名、管理者的員工號

我一直不喜歡:
select * from a,b
這樣的查詢方式,或許它看起來非常簡潔 ,但是有的時候 它並不是那麼好用
我一般用 Left join 和 inner join 這 兩種方式來參照。
如下:
-- 上面的是 除boss 以外的所有員工
select e.name,e.dept_id,m.name as "管理者名稱",e.manager_id as "管理者員工號"
from emp e
Left join emp m on e.manger_id= m.id
where e.manger_id is not null
Union ALL
-- 下面的是 boss
select name,dept_id,''as "管理者名稱",'' as "管理者員工號"
from emp
where manger_id is null

Ⅶ 求ORACLE資料庫的練習題

使用scott/tiger用戶下的emp表完成下列練習,表的結構說明如下

emp員工表 欄位內容如下:

empno 員工號
ename 員工姓名
job 工作
mgr 上級編號
hiredate 受雇日期
sal 薪金
comm 傭金
deptno 部門編號

1.選擇部門30中的所有員工.

2.列出所有辦事員(CLERK)的姓名,編號和部門編號.

3.找出傭金高於薪金的員工.

4.找出傭金高於薪金的60%的員工.

5.找出部門10中所有經理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料.

6.找出部門10中所有經理(MANAGER),部門20中所有辦事員(CLERK),既不是經理又不是辦事員但其薪金大於或等於2000的所有員工的詳細資料.

7.找出收取傭金的員工的不同工作.

8.找出不收取傭金或收取的傭金低於100的員工.

9.找出各月倒數第3天受雇的所有員工.

10.找出早於12年前受雇的員工.

11.以首字母大寫的方式顯示所有員工的姓名.

12.顯示正好為5個字元的員工的姓名.

13.顯示不帶有"R"的員工的姓名.

14.顯示所有員工姓名的前三個字元.

15.顯示所有員工的姓名,用a替換所有"A"

16.顯示滿10年服務年限的員工的姓名和受雇日期.

17.顯示員工的詳細資料,按姓名排序.

18.顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面.

19.顯示所有員工的姓名、工作和薪金,按工作的降序排序,若工作相同則按薪金排序.

20.顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面.

21.顯示在一個月為30天的情況所有員工的日薪金,忽略余數.

22.找出在(任何年份的)2月受聘的所有員工。

23.對於每個員工,顯示其加入公司的天數.

24.顯示姓名欄位的任何位置包含"A"的所有員工的姓名.

25.以年月日的方式顯示所有員工的服務年限. (大概)

Ⅷ oracle資料庫關於查詢的一些習題.

1、select * from t_download where down_date>=to_date('2012-03-07 15','yyyy-mm-dd HH24') and rownum<=100 order by down_date desc;
2、select price_id,app_date from t_appinfo where app_id in (select app_id from t_download where trunc(down_date)=trunc(sysdate-1);
3、select log_id from t_download group by log_id having count(log_id)>50;
4、select * from t_appinfo where app_name like '%中%';
5、select substr(app_id,5,1),substr(app_id,8,1) from t_appinfo;

Ⅸ oracle練習。用SQL語句建表

(1)
create table customer(
"客戶編號" number(8),
"客戶名稱" varchar2(40),
"客戶電話" varchar2(20)
);
(2)
insert into customer values(1,'客戶1','13900000001');
insert into customer values(2,'客戶2','13900000002');
insert into customer values(3,'客戶3','13900000003');
insert into customer values(4,'客戶4','13900000004');
insert into customer values(5,'客戶5','13900000005');
insert into customer values(6,'客戶6','13900000006');
insert into customer values(7,'客戶7','13900000007');
insert into customer values(8,'客戶8','13900000008');
insert into customer values(9,'客戶9','13900000009');
insert into customer values(10,'客戶10','13900000010');
(3)
select * from customer where rownum>=4 and rownum<=6;

Ⅹ oracle的sql筆試題

select t1.name||t2.name
from tab t1,tab t2
where t1.no<t2.no
order by t1.name,t2.name;

結果如下:
T1.NAME||T2.NAME
----------------
ab
ac
ad
bc
bd
cd

如果想在一行里顯示用decode函數作行列轉換

熱點內容
最新款的電腦高配置是什麼樣的 發布:2025-01-12 01:44:08 瀏覽:823
編程手舞蹈 發布:2025-01-12 01:36:18 瀏覽:958
阿里雲伺服器要備案嗎 發布:2025-01-12 01:36:06 瀏覽:94
資料庫應用與信息管理 發布:2025-01-12 01:26:06 瀏覽:269
esxi管理存儲伺服器 發布:2025-01-12 01:25:59 瀏覽:767
在烏班圖搭建web伺服器 發布:2025-01-12 01:25:24 瀏覽:390
浙江省開票軟體升級版伺服器地址 發布:2025-01-12 01:15:57 瀏覽:203
蘋果電腦怎麼進入電腦伺服器 發布:2025-01-12 01:08:49 瀏覽:731
安卓平板怎麼設置隔空刷抖音 發布:2025-01-12 01:08:12 瀏覽:392
手機設備存儲是什麼 發布:2025-01-12 01:03:45 瀏覽:906