程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 簡單查詢和限定查詢,簡單限定

簡單查詢和限定查詢,簡單限定

編輯:Oracle教程

簡單查詢和限定查詢,簡單限定


使用scott用戶下的表,

 

1.--查詢表的所有內容
SELECT * FROM emp;
2.--查詢員工編號,姓名,基本工資
SELECT e.empno,e.ename,e.sal
FROM emp e;
3.--查詢職位並去掉重復
SELECT DISTINCT e.job
FROM emp e;
4.--查詢員工編號,姓名,基本工資,月薪,年薪
SELECT e.empno 編號,e.ename 姓名,e.sal 月薪,e.sal*12 || '元' 年薪,ROUND(e.sal/30,2) 日薪, '$' 貨幣
FROM emp e;
5.--查詢表中有多少條記錄
SELECT COUNT(*) FROM emp;

6.--查詢基本工資高於1500的全部員工信息
SELECT *
FROM emp e
WHERE e.sal>1500;

7.--查詢基本工資小於等於2000的全部員工信息
SELECT *
FROM emp e
WHERE e.sal<=2000;
8.--查詢姓名是smith的員工信息
SELECT *
FROM emp e
WHERE e.ename=UPPER('smith');

9.--查詢職位是clerk的的員工信息
SELECT *
FROM emp e
WHERE e.job='CLERK';
10--查詢職位不是clerk的的員工信息

SELECT *
FROM emp e
WHERE NOT e.job='CLERK';

SELECT *
FROM emp e
WHERE e.job<>'CLERK';

SELECT *
FROM emp e
WHERE e.job!='CLERK';
11.--查詢工資在1500~3000包含1500和3000的員工的信息
SELECT *
FROM emp e
WHERE e.sal BETWEEN 1500 AND 3000;

12.--查詢職位是銷售人員salesman並且工資高於1200的員工信息
SELECT *
FROM emp e
WHERE e.job='SALESMAN' AND e.sal>1200;
13.--要求查詢中10部門中的經理或者20部門中的業務員
SELECT *
FROM emp e
WHERE (e.deptno=10 AND e.job='MANAGER')
OR (e.deptno=20 AND e.job='CLERK')
14.--查詢不是業務員且工資大於2000的員工
SELECT *
FROM emp e
WHERE e.job<>'CLERK' AND e.sal>2000;
15.--查詢出在1981年入職的員工
SELECT * 
FROM emp e
WHERE to_char(e.hiredate,'YYYY')='1981';
--判斷內容是否為空is null ,is not null
16.--查詢所有領取資金的員工的信息
SELECT *
FROM emp e
WHERE e.comm IS NOT NULL;
17.--查詢所有不領取資金的員工的信息
SELECT *
FROM emp e
WHERE e.comm IS NULL;
18.--查詢所有不領取資金同時工資大於2000的員工的信息
SELECT *
FROM emp e
WHERE e.comm IS NULL AND e.sal>2000;
19.--查詢不收取傭金,或者收取傭金小於100元的員工
SELECT *
FROM emp e
WHERE e.comm IS NULL OR e.comm<100;

20.--查找收取傭金的員工的不同職位的工作
--先查找收取傭金的員工職位JOB
SELECT e.job
FROM emp e 
WHERE e.comm IS NOT NULL;
--發現職位重復使用distinct
SELECT DISTINCT e.job
FROM emp e
WHERE e.comm IS NOT NULL;

--列的范圍查找in ,not in,有固定的多個條件才使用
-21.-查詢出員工編號是7369,7788,7566的員工信息
--可以用OR來寫
SELECT * 
FROM emp e
WHERE e.empno=7369 OR e.empno=7788 OR e.empno=7566
--用in來寫可以省去很多代碼
SELECT *
FROM emp e
WHERE e.empno IN (7369,7788,7566);

22.--查詢出員工編號不是7369,7788,7566的員工信息
SELECT *
FROM emp e
WHERE e.empno NOT IN (7369,7788,7566);

--模糊查詢 like not like 
--%匹配0個,1個或者多個字符
--_下劃線只能匹配一個字符
23.--查詢出員工姓名是S開頭的員工信息
SELECT *
FROM emp e
WHERE e.ename LIKE 'S%';
24.--查詢姓名第2個字母是M的員工信息
SELECT * 
FROM emp e
WHERE e.ename LIKE '_M%';
25.--查詢姓名中包含F的員工信息
--先分析F可以出現在姓名中的任意位置用%來匹配
SELECT *
FROM emp e
WHERE e.ename LIKE '%F%'

26.--查詢姓名長度為6或者長度超過6的員工信息
SELECT * 
FROM emp e
WHERE LENGTH(e.ename)>=6;
--也可以用下劃線來匹配6個下劃線
SELECT * 
FROM emp e
WHERE e.ename LIKE '______%';

27.--查詢基本工資中包含1或者在81年入職的員工
SELECT * 
FROM emp e
WHERE e.sal LIKE '%1%' OR to_char(e.hiredate,'YYYY')='1981';
--換成AND
SELECT * 
FROM emp e
WHERE e.sal LIKE '%1%' AND to_char(e.hiredate,'YYYY')='1981';

28.--查詢10部門中的所有經理,20部門中所有業務員,
--既不不是經理又不是業務員但工資大於2000元的所有員工
--同時員工姓名中包含S或者K
SELECT * 
FROM emp e
WHERE ((e.deptno=10 AND e.job='MANAGER')
OR (e.deptno=20 AND e.job='CLERK')
OR(e.job NOT IN('MANAGER','CLERK') AND e.sal>2000))
AND (e.ename LIKE '%S%'OR e.ename LIKE '%K%');

--order by 排序 ASC ASC可以省略,升序 DESC 降序 
29.--查詢所有員工,並按工資由高到低排序 
SELECT * 
FROM emp e
ORDER BY e.sal DESC;
30.--查詢所有員工,並按工資由低到高排序 
SELECT * 
FROM emp e
ORDER BY e.sal ASC;
--ASC可以不寫
SELECT * 
FROM emp e
ORDER BY e.sal;
31.--查詢所有業務員的詳細信息,並且按照,基本工資由低到高排序
SELECT * 
FROM emp e
WHERE e.job='CLERK'
ORDER BY e.sal ASC;

32.--查詢所有員工信息,要求按基本工資由高到低排序,如果工資相同按入職早,晚時間排序
SELECT *
FROM emp e
ORDER BY e.sal DESC ,e.hiredate ASC;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved