oracle的Select語句以及函數


Select語句_函數

 查詢語句

SELECT

select 用於從數據中查詢數據,形式:

select field1 ,field2,.....from tablename

where condition

例如:查詢員工的名字和雇員號,

首先的構思出從那個數據包中>>>> from emp

使用select 查詢,select emp.ename, emp.empno,

其中字段的別名,用雙引號,也可以省略。

select ename as " 姓名  "from emp;

* 通配符表示查詢所有字段。如果要查特定字段時,不要使用*,影響查詢效率。

select empno,ename,job,mgr,hiredate,sal,comm,deptno

from emp;

-- * 通配符表示所有字段

select * from emp;

 distinct 去重

重復性的記錄去掉,只保留一條。

select distinct e.job from emp e;

 where 子句

where 表示查詢的條件。

 

[1] =,!= ,<>,<,>,<=,>= 關系運算符

<> 表示不等於

-- 把部分10的雇員查詢出來

select *

from emp

where deptno = 10;

 

-- 把名稱為smith的雇員

select e.*

from emp e

where e.ename = 'SMITH';

 

-- 查詢底薪大於等於1000的員工

select e.*

from emp e

where e.sal >= 1000;

 

select e.*

from emp e

where e.sal <> 800

any/some/all (list)

any/some(list) 滿足list列表的任意一個條件

all(list) 滿足list列表的中所有條件

null

null 在sql中表示是不確定 => 可以認為沒有值

between x and y 

表示一個值位於[x,y]區間,x/y 一般都是數字。

 in/not in list

表示字段值是否在list列表

模糊查詢 

like 關鍵字用於模糊查詢,其中

%:表示任意字符出現多次(0),

_:表示任意字符出現1

escape('x') 表示指定轉義字符為x,一般指定為\

 復雜查詢(and/or)

where 后面條件可以跟多個通過and 或者 or 連接

and:且、並且

or: 或、或者

優先級:and大於or

where and or 中執行效率問題

分析:

and:表示且,條件越多,檢索的數據量越來越少,

or:表示或,條件越少,檢索的數據量越來越多。

where執行的順序從后向前。

 計算字段

我們經常需要把數據中檢索出來的信息進行再加工,允許的操作+-、*/。通過四個運算得到新的字段(計算字段)

計算字段在數據中不存在。

注意:很多記錄中的comm是null,表示不確定的值,經常四則運算后的值也不確定

 

當遇到字段時null,可以通過nvl函數把null轉化便於運算的類型。

 函數

函數一般是在數據上執行的,它給數據的轉換和處理提供了方便。只是將取出的數據進行處理,不會改變數據庫中的值。

函數根據處理的數據分為單行函數和聚合函數(函數)

組函數又被稱作聚合函數,用於對多行數據進行操作,並返回一個單一的結果,組函數僅可用於選擇列表或查詢的having子句

單行函數對單個數值進行操作,並返回一個值。

 

dual一個系統表。注意用於測試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM