Oracle 資料庫基礎練習

2021-08-09 07:41:36 字數 2633 閱讀 9788

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

select * from emp where deptno=30;

2 列出職位為(manager)的員工的編號,姓名

select ename,empno from emp where job='manager'

3 找出獎金高於工資的員工 

select ename from emp where comm>sal;

4 找出每個員工獎金和工資的總和 

select ename,sal+ nvl(comm,0) total from emp;

select ename,nvl2(comm,sal+comm,sal) total from emp;

5 找出部門 10 中的經理(manager)和部門 20 中的普通員工(clerk) 

select * from emp where (deptno=10 and  job='manager') or (deptno=20 and  job='clerk');

6 找出部門 10 中既不是經理也不是普通員工,而且工資大於等於 2000 的員工

select ename from emp where (deptno=10 and sal>2000)and job!='manager' and job!='clerk' ;

select ename from emp where (deptno=10 and sal>2000)and job not in('manager','clerk') ;

7 找出有獎金的員工的不同工作 

select distinct job from emp where comm>0 and comm is not null;

8 找出沒有獎金或者獎金低於 500 的員工 

select ename from emp where comm<500 or comm is null or comm=0;

9 顯示雇員姓名,根據其服務年限,將最老的雇員排在最前面

select ename,to_char(hiredate,'yyyy-mm-dd') from emp order by to_char(hiredate,'yyyy-mm-dd');

select ename,hiredate from emp order by hiredate

--1 找出每個月倒數第三天受僱的員工(如:2009-5-29)

select ename from emp where hiredate=last_day(hiredate)-2;

--2 找出 25 年前僱的員工 

select ename, to_char(hiredate,'yyyy-mm-dd') from emp hiredate25*12;

select ename, to_char(hiredate,'yyyy-mm-dd') from emp where (to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy')) >25;

--3 所有員工名字前加上 dear ,並且名字首字母大寫 

select concat('dear',initcap(ename)) from emp;

4 找出姓名為 5 個字母的員工 

select ename from emp where  length(ename)=5; -- ename like '_____';

5 找出姓名中不帶 r 這個字母的員工 

select ename from emp where ename not like '%r%';

6 顯示所有員工的姓名的第乙個字 

select ename,substr(ename,0,1) from emp;

7 顯示所有員工,按名字降序排列,若相同,則按工資公升序排序 

select ename from emp order by ename desc , sal asc;

8 假設乙個月為 30 天,找出所有員工的日薪,不計小數 

select ename,sal,round(sal/30,0) from emp; 

9 找到 2 月份受僱的員工 

select ename from emp where to_char(hiredate,'mm')='02';

10 列出員工加入公司的天數(四捨五入) 

select ename,round(sysdate-hiredate) from emp;

11 分別用 case 和 decode 函式列出員工所在的部門,

deptno=10 顯示'部門 10', 

deptno=20 顯示'部門 20'    

deptno=30 顯示'部門 30'    

deptno=40 顯示'部門 40'  

否則為'其他部門' 

select deptno,ename,sal,( case deptno when 10 then '部門 10' when 20 then '部門 20'

when 30 then '部門 30' when 40 then '部門 40' else '其他部門' end) dept from emp;

select deptno,ename,sal,decode(deptno,10,'部門 10',20,

'部門 20',30,'部門 30','其他部門') dept from emp;

oracle資料庫練習

1.選擇部門30中的所有員工.2.列出所有辦事員 clerk 的姓名,編號和部門編號.3.找出佣金高於薪金的員工.4.找出佣金高於薪金的60 的員工.5.找出部門10中所有經理 manager 和部門20中所有辦事員 clerk 的詳細資料.6.找出部門10中所有經理 manager 部門20中所有...

oracle資料庫基礎

1.什麼叫關係型資料庫 基於關係模型的資料庫就叫關係型資料庫。2.那什麼叫關係模型了 使用的儲存結構是多個二維表,實體與實體間的聯絡都是用關係來表示的。oracle資料庫是關係型資料庫 1.sql plus的常用命令 1 conn ect 用法 conn 使用者名稱 密碼 網路服務名 as sysd...

Oracle資料庫基礎!

ddl 資料庫定義語言 dml 資料庫操縱語言 dql 資料庫查詢語言 oracle 甲骨文公司的產品 字元型 char 日期型別date 大字段 樣本資料庫 約束 限制表中的列可以存放什麼樣的資料 not null不允許為空 check一種檢查約束,開發不用 2 檢視表結構 desc 表名 3 資...