国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle中簡單查詢、限定查詢、數據排序SQL語句范例和詳細注解

Oracle中簡單查詢、限定查詢、數據排序SQL語句范例和詳細注解

2019-12-10 15:07junjie Oracle

這篇文章主要介紹了Oracle中簡單查詢、限定查詢、數據排序SQL語句范例和詳細注解,對查詢語法一并做了介紹,需要的朋友可以參考下

一、簡單查詢

SQL(Structured Query Language) 結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。ANSI(美國國家標準學會)聲稱,SQL是關系數據庫管理系統的標準語言。
Oracle數據庫之所以發展的很好,主要也是因為Oracle是全世界最早采用SQL語句的數據庫產品。
SQL功能強大,概括起來,它可以分成以下幾組:

 

復制代碼 代碼如下:
DML(Data Manipulation Language) 數據操作語言,用于檢索或者修改數據
DDL(Data Definition Language) 數據定義語言,用于定義數據的結構,創建、修改或者刪除數據庫對象
DCL(Data Control Language) 數據控制語言,用于定義數據庫的權限

 

簡單查詢指的是查詢出一張表中的所有的數據,簡單查詢的語法如下:

復制代碼 代碼如下:
SELECT [DISTINCT] * | 字段 [別名] [,字段 [別名]] FROM 表名稱 [別名]; 

 

范例:

?
1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM dept;--查詢dept表的全部記錄 
SELECT empno, ename, sal FROM emp;--查詢出每個雇員的編號、姓名、基本工資 
SELECT job FROM emp;--查詢出每個雇員的職位。這個時候發現查詢出來的job內容中出現了重復的數據。 
SELECT DISTINCT job FROM emp;--使用DISTINCT消除掉所有的重復內容。但是對于重復數據,指的是一行中的每個列的記錄都重復,才叫重復數據。 
SELECT DISTINCT ename, job FROM emp;--查詢出每個雇員的姓名、職位 
SELECT ename, job, sal*12 FROM emp;--使用各個數學的四則運算符,要求顯示每一個雇員的姓名、職位、基本年薪 
SELECT ename, job, sal*12 income FROM emp;--為顯示的查詢列起一個別名,對于別名,建議不要使用中文,只要是程序的開發,都要回避中文。 
SELECT ename, job, (sal+300)*12 income FROM emp;--由于公司的福利很高,每個月都有200元的飯食補助以及100元車費補貼,這個時候的年薪 
SELECT ename, job, (sal+300)*12+sal income FROM emp;--公司每年的年底都會多發一個月的基本工資 
SELECT empno || ',' || ename FROM emp;--在簡單查詢中也可以使用“||”連接查詢的字段。 
SELECT '雇員編號是:' || empno || '的雇員姓名是:' || ename || ',基本工資是:' || sal || ',職位是:' || job || '! ' 雇員信息 FROM emp;--要求現在的數據庫按照如下的格式顯示:“雇員編號是:7369的雇員姓名是:SMITH,基本工資是:800,職位是:CLERK!”

由于“,”屬于原樣輸出的字符串,所以必須使用“ ' ”括起來,即:在SQL語句之中,“ ' ”表示的是字符串。
一定要記住,別名上的內容不要使用“ ' ”括起來,而只有在SELECT子句之中出現的內容使用“ ' ”。

二、限定查詢

在之前的簡單查詢中,是將所有的記錄進行顯示,但是現在可以對顯示的記錄進行過濾的操作,而這就屬于限定查詢的工作了,限定查詢就是在之前語法的基礎上增加了一個WHERE子句,用于指定限定條件,此時語法如下:

復制代碼 代碼如下:
SELECT [DISTINCT] * | 字段 [別名] [,字段 [別名]]  
FROM 表名稱 [別名]  
[WHERE 條件(S)]; 

在WHERE子句之后可以增加多個條件,最常見的條件就是基本的關系運算:>、>=、< 、<=、!=(<>)、BETWEEN、AND、LIKE、IN、IS NULL、AND、OR、NOT;

 

1、關系運算

?
1
2
3
4
5
6
7
8
9
SELECT * FROM emp WHERE sal>1500;--要求查詢出基本工資高于1500的所有雇員信息 
SELECT * FROM emp WHERE job='clerk';--查詢出所有職位是辦事員的雇員信息 
SELECT * FROM emp WHERE job='CLERK';--上面沒有返回相應的查詢結果,主要原因是在Oracle數據庫中,所有的數據都是區分大小寫的 
SELECT * FROM emp WHERE sal>=1500 AND sal<=3000;--查詢工資在1500~3000之間的全部雇員信息,多個條件之間可以使用AND或OR進行連接操作 
SELECT * FROM emp WHERE job='CLERK' OR job='SALESMAN';--查詢出職位是辦事員,或者是銷售人員的全部信息 
SELECT * FROM emp WHERE (job='CLERK' OR job='SALESMAN') AND sal>1200;--查詢出職位是辦事員,或者是銷售人員的全部信息,并且要求這些雇員的工資大于1200 
SELECT * FROM emp WHERE job<>'CLERK';--查詢所有不是辦事員的雇員信息 
SELECT * FROM emp WHERE job!='CLERK'
SELECT * FROM emp WHERE NOT job='CLERK';

 

2、范圍判斷:BETWEEN…AND…

“BETWEEN 最小值 AND 最大值”,表示的是一個范圍的判斷過程。“BETWEEN…AND…”操作符不光只是針對于數字有用,對于日期也同樣有用。

復制代碼 代碼如下:
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;--要求查詢出基本工資在1500~3000的雇員信息  
SELECT * FROM emp WHERE NOT sal BETWEEN 1500 AND 3000;--現在也可以對BETWEEN…AND…操作求反  
SELECT * FROM emp WHERE hiredate BETWEEN '01-1月-1981' AND '31-12月-81';--要求查詢出在時間范圍內的全部雇員信息 

 

3、判斷是否為空:IS (NOT) NULL

使用此語法可以判斷某一個字段上的內容是否是“null”,但是null和數字0以及空字符串是兩個概念。

復制代碼 代碼如下:
SELECT * FROM emp WHERE comm IS NOT NULL;--查詢出所有領取獎金的雇員信息  
SELECT * FROM emp WHERE NOT comm IS NULL;  
SELECT * FROM emp WHERE comm IS NULL;--查詢出所有不領取獎金的雇員 

 

4、指定范圍的判斷:IN操作符

IN操作符表示的是指定一個查詢的范圍

?
1
2
3
4
5
SELECT * FROM emp WHERE empno=7369 OR empno=7566 OR empno=7799;--使用OR操作查詢出雇員編號是7369、7566、7799的雇員信息 
SELECT * FROM emp WHERE empno IN (7369,7566,7799);--使用IN操作查詢出雇員編號是7369、7566、7799的雇員信息 
SELECT * FROM emp WHERE empno NOT IN (7369,7566,7799);使用NOT IN操作查詢出雇員編號不是7369、7566、7799的雇員信息 
SELECT * FROM emp WHERE empno IN(7369,7566,null);--使用了IN操作符,查詢的范圍之中存在了null,不影響查詢; 
SELECT * FROM emp WHERE empno NOT IN(7369,7566,null);--使用的是NOT IN操作符,如果查詢范圍之中有了null則表示的就是查詢全部數據。

 

 

5、模糊查詢:LIKE子句
LIKE子句的功能是提供了模糊查找的操作,例如:某些程序上出現的搜索操作,都屬于LIKE子句的實現,但是必須提醒的,搜索引擎上的查詢可不是LIKE。但是要想使用LIKE子句則必須認識兩個匹配符號:

復制代碼 代碼如下:
匹配單個字符:_; -> 1個
匹配任意多個字符:%; -> 0個、1個、多個

 

?
1
2
3
4
5
SELECT * FROM emp WHERE ename LIKE 'A%';--要求查詢雇員姓名中以字母A開頭的全部雇員信息 
SELECT * FROM emp WHERE ename LIKE '_A%';--要求查詢出雇員姓名中第二個字母是A的全部雇員信息 
SELECT * FROM emp WHERE ename LIKE '%A%';--要求查詢出雇員姓名中帶有字母A的雇員 
SELECT * FROM emp WHERE ename NOT LIKE '%A%';--使用NOT操作,對操作進行求反的功能 
SELECT * FROM emp WHERE ename LIKE '%1%' OR hiredate LIKE '%1%' OR sal LIKE '%1%';--對于LIKE子句,可以在任意的數據上表示:

在開發之中,數據庫的模糊查詢肯定使用LIKE子句,但是在使用LIKE子句的時候有一個最大的注意點:如果在模糊查詢上不設置任何的查詢關鍵字的話('%%')則表示查詢全部記錄:

復制代碼 代碼如下:
SELECT * FROM emp WHERE ename LIKE '%%' OR hiredate LIKE '%%' OR sal LIKE '%%'; 

 

三、數據的排序

當數據返回查詢結果之后,所有的數據默認情況下是按照雇員編號排序的,當然,現在也可以使用”ORDER BY”子句指定所需要的排序的操作列,而這個時候的SQL語法如下:

復制代碼 代碼如下:
SELECT [DISTINCT] * | 字段 [別名] [,字段 [別名]]  
FROM 表名稱 [別名]  
[WHERE 條件(S)]  
[ORDER BY 字段 [ASC|DESC] [,字段 [ASC|DESC],…]]; 

 

“ORDER BY”子句是寫在所有的SQL語句最后的內容,而且對于排序有以下幾點說明:
排序的時候可以指定多個排序的字段;
排序的方式有兩種:1、升序(ASC):默認,不寫也是升序;2、降序(DESC):用戶需要指定,由大到小排序;

?
1
2
3
4
SELECT * FROM emp ORDER BY sal;--查詢所有的雇員的信息,要求按照工資排序 
SELECT * FROM emp ORDER BY sal ASC
SELECT * FROM emp ORDER BY sal DESC;--進行降序排列 
SELECT * FROM emp ORDER BY sal DESC, hiredate ASC;--查詢出所有的雇員信息,按照工資由高到低排序,如果工資相同,則按照雇傭日期由早到晚排序

對于排序操作,一般只在需要的地方上使用,而且一定要記住的是,ORDER BY 子句是寫在所有的SQL語句的最后的部分。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久99国产精一区二区三区 | 欧美一级全黄 | 日操干 | 精品一区二区在线观看 | 成人免费网视频 | 国产一区二区精品在线观看 | 日韩福利视频 | 成人在线免费视频 | 一区二区三区www. | 精品久久久久久久人人人人传媒 | 欧美日韩综合视频 | 国产999精品久久久久久麻豆 | 亚洲二区在线 | 欧美黄色免费网址 | 久久精品国语 | 四虎最新网站 | 97人人爱| аⅴ资源新版在线天堂 | 日本免费一区二区三区四区 | 精品国产乱码久久久久久影片 | 中文字幕在线观看一区二区 | 午夜精品久久久久久久久 | 好吊妞国产欧美日韩免费观看视频 | 日本不卡免费新一二三区 | 日韩国产一区二区三区 | 欧美日韩电影一区二区三区 | 久久国产一区 | 在线观看一区二区视频 | 精品久久一区 | 亚洲电影在线 | 中文字幕国产日韩 | 日韩一区二区三区在线看 | 久久久成人免费一区二区 | 亚洲精品视频免费 | 欧美日韩一区二区三区免费视频 | 国产啊v在线观看 | 波多野结衣一区二区三区中文字幕 | 国产一区av在线 | 99久久久 | 人人人人澡人人爽人人澡 | 九九九久久久 |