1 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是一個系統表。注意用於測試。