oracle運算子及單錶查詢

2021-07-04 16:18:03 字數 2961 閱讀 9807

–select語句–

–select 子句:指定查詢結果集的列的組成,列表中的列可以來自乙個或多個表或檢視

–from 子句:指定要查詢的乙個或多個表或檢視

–where 子句:指定查詢的條件

select emp_id from employee

—列的別名—-

–如果查詢語句中有表示式時,表示式的名稱將會顯示在列位值,可以為其提供別名;別名可以使用雙引號,也可以在別名前加as關鍵字

select emp_id as 員工id from employee

–sql語句規範—

–sql語句是不區分大小寫的

–sql語句可以是一行,也可以是多行

–關鍵字不能在兩行之間一分為二或縮寫

–子句通常放在單獨的行中,這樣可以增強可讀性並且易於編輯

–使用縮排是為了增強可讀性

–關鍵字通常使用大寫字母輸入;所有其它文字都是使用小寫輸入的

—連線運算子—

將列或字串連線到其他列

由兩條豎線表示(||) 或 concat(arg1,arg2)

建立乙個合成列,它是字串表示式

select emp_name||emp_date from employee

select concat(emp_name, emp_date) from employee

—-使用where子句限制返回的行

語法 select *|

from table

where condition(s);

說明 where子句在form後面,將查詢物件限制在滿足一定條件的行

condition(s):由列名、表示式、常數和比較運算子組成

where子句可以比較列、文字值、算術表示式或函式的值。它包含三個元素:

列名 比較條件

列名、常數或值列表

where子句中的and\or\in\not in\between and \like關鍵字的使用

desc 表名 檢視表的資訊

檢視當前日期

select sysdate from employee

新增日期函式to_date()

insert into employee value(to_date(『1993-1-1』,』yyyy-mm-dd』))

–比較運算子

= 等於

<>或!= 不等於

< 小於

大於

<= 小於等於

= 大於等於

any 比較值列表中的任何乙個值

all 比較列表值中的所有值

any運算子

在where子句中使用any運算子與列表中的任意值進行比較

必須在使用any運算子之前使用= , <> , < , > , <= ,或 >=運算子

select * from employee

where emp > any (7369, 7521, 7499);

all運算子

在where子句中使用all運算子與值列表中的所有值進行比較

例如,查詢emp表

select * from employee

where emp > all(7369, 7521, 7499);

sql運算子

sql運算子可以進行模式匹配,像字串、列表值、null值。

like:匹配字元

(select name from employee where name like 『z%』)

下劃線(_):表示匹配某個位置的字元

百分號(%):表示在某個位置的任意個字元

in:匹配列表值

select *from emplyee where emp in (20,30,10);

between:匹配範圍值

select *from emplyee where emp between 20 and 30

exists運算子

select * from emp where exists (select * from emp);

is null:匹配空值

select *from emplyee where emp is null;

is nan:匹配非數字值

同樣可以在上述運算子前加not取反

如:not like ,not between,is not null,is not nan

如果要查詢實際的下劃線或百分號就需要使用escape選項區分萬用字元

escape選項告知資料庫如何區分萬用字元和要匹配的字元,可以使用反斜槓(),例如,

select ename from employee

where ename like 『%\%%』 escape 『\』;

在select語句中,可以使用distinct關鍵字刪除重複的行

例如,查詢emp表中,刪除重複的job值

select distinct job from emp;

order by

可以使用order by對查詢的結果進行排序,可以對一列或多列進行排序,order by必須在from子句後或where子句後(如果有where子句)

例如,查詢emp表,並對ename列進行排序

select * from emp order by ename;

預設情況下,order by是按照公升序(asc)排序,也可以使用desc指定為降序排序

例如,查詢emp表,先按empno公升序排列,再按ename降序排列

select *from emp

order by empno asc, ename desc;

同樣可以是列的位置編號,指定哪列需要進行排序

例如,查詢emp表,要對查詢的第2列ename列進行降序排列

select *from emp order by 2 desc;

Oracle 查詢和運算子

查詢公司設定了哪些崗位 select distinct from emp 查詢每個崗位上的員工人數 select job,count from emp group by job 查詢每個部分上的員工人數 select dept.dname,dept.demptno,count from emp in...

Oracle 運算子運算子

oracle中邏輯運算子 not,and,or 及其優先順序 2008 12 05 15 06 oracle的邏輯運算子也是用在sql 語句中必不可少的因素,一共有三個 邏輯運算子 意義and 雙值運算子,如果左右兩個條件都為真,則得到的值就為真 or雙值運算子,只要左右兩個條件有乙個為真,則得到的...

單目運算子和雙目運算子

運算子分為單目,雙目和三目 顧名思義,就是運算子的運算元的個數 單目就是乙個運算元,比如 a 運算元只有乙個a,寫成a b是非法的。雙目就是兩個運算元,最熟悉的就是 a b,計算ab的和 三目就是三個運算元,目前只有乙個條件運算子,運算子,比如a?b c,當a的值為真時,結果是b,否則結果是c。注意...