首頁 >php教程 >PHP开发 >Oracle基礎學習之簡單查詢與限定查詢

Oracle基礎學習之簡單查詢與限定查詢

高洛峰
高洛峰原創
2017-01-06 11:21:351498瀏覽

本文主要介紹的是關於Oracle中的簡單查詢和限定查詢,下面話不多說,來一起看看吧。

SQL:

     1,DML(資料操作語言):主要指的是資料庫的查詢與更新的操作,查詢操作是整個sql語法 中最麻煩也是筆試中最常用的部分。

     2,DDL(資料定義語言):主要指的是資料物件的建立(表格、使用者、)例如:creat.需要相關的設計範式。

     3,DCL(資料控制語言):主要進行權限的操作(需結合使用者來觀察),此部分由DBA負責。

簡單查詢:

1,利用select 子句控制要顯示的資料列:

select empno,ename,ename,job,sal from emp;

   

2,可使用distinct

,子句可以進行四則運算,可以直接輸出常數內容,但是對於字串使用單引號數字直接編寫,日期格式按照字元格式:

select distinct job from emp;

   

4,||負責輸出內容連接此類的操作很少直接在查詢中出現:

select empno,ename,(sal*15+(200+100)) income from emp;

   

5,where子句一般都寫在from子句之後,但是是緊跟著from子句之後執行的,where子句控制顯示資料行的操作,而select控制資料列,select子句要落後於where子句執行,所以在select子句之中定義的別名無法在where中使用。

限定查詢:

1,關係運算子:

select empno||ename from emp;

   

2,邏輯運算子:

select * from emp where sal>1500;
 
select * from emp where ename ='SMITH'
 
select empno,ename,job from emp where job<>&#39;SALESMAN&#39;;

   

2,邏輯運算子:

select * from emp where sal>1500 and sal<3000;
select * from emp where sal>2000 or job=&#39;CLERK&#39;;
select * from emp where not sal >=2000;

   

4,空判斷(空在資料庫上表示不確定,如果在資料列使用null不表示0)

select * from emp where sal between 1500 and 2000;
select * from emp where hiredate between &#39;01-1月-1981&#39;and&#39;31-12月-1981&#39;;

   

5,IN運算子(類似between and 而in 

關於not in與null的問題:

在使用not in 進行範圍判斷的時候,如果範圍有null,那麼就不會有任何結果回傳。

6,模糊查詢:

“-”:匹配任意一位字符;

“%”:匹配任意的0,1,,或者多位字符;

查詢姓名是以字母A開頭的僱員信息:

select * from emp where comm is not null;

   

查詢姓名第二個字母是A的員工資訊:

select * from emp where empno in (7369,7566,7788,9999);

   

ASC (預設):依升序排列;

DESC: 依照降序排列;

查詢所有的員工資訊,要求依照薪資的由高到低:

select * from emp where ename like &#39;A%&#39;

   

,每個年薪的員工編號,姓名,每個年薪,依照年薪從低到高排序:

select * from emp where ename like &#39;_A%&#39;;

   

語句的執行順序:from - where -select - order by

rr

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

select * from emp where ename like &#39;%A%&#39;;

   

3,找出佣金高於薪金的60%的員工: 4,找出部門10中所有的經理(manager)和部門20中所有的辦事員(clerk):

select * from emp order by sal desc;

   


5,找出部門10中所有的經理(manager),部門經理(manager),部門經理(manager),20中的所有辦事員(clerk),以及既不是經理又不是辦事員但是工資高於等於2000的所有員工資料:

select empno ,ename,sal*12 income from emp order by income;
select * from emp where deptno=30;

   

6,找出收取佣金的員工的不同工作:rro

6, ,找出收取佣金或收取的佣金低於100的員工:

select ename,empno,deptno from emp
where job=&#39;CLERK&#39;;

   

8,顯示不含「R」的員工姓名:

select * from emp where comm>sal*0.6 ;

   

所有員工姓名,顯示的結果依照基本的薪資由高到低,如果薪資相同,則依照僱用年資由早到晚,如果僱用日期相同,則依職位排序:

select *
from emp
where (deptno=10 and job=&#39;MANAGER&#39; )or(deptno=20 and job=&#39;CLERK&#39;   );

   

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或工作能帶來一定的幫助,如果有疑問大家可以留言交流。

更多Oracle基礎學習之簡單查詢和限定查詢相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn