Oracle運算符


操作符;

算術運算符
加:+
減:-
乘:*
除:/
取余:Mod(X,Y)

比較運算符:
1、等於:=
2、大於:>
3、小於:<
4、不等於:!= 或<>
5、小於等於:<=
6、大於等於:>=

邏輯運算符有三個:
1、 與:AND
2、 或:OR
3、 非:NOT

字符串連接:||

示例:
SQL語句:select ename,sal,sal*12+2000 from emp where sal>2000;
如下圖所示:

消除重復行:
查詢消除某個列重復數據。
SQL關鍵字:Distinct
SQL語句:select distinct 列名 from 表名

示例:
SQL語句:select distinct deptno from emp order by deptno asc;

NULL操作
SQL語句:is null/is not null;
主鍵不能為空。
1、是空值SQL語句:Is null
示例:
SQL語句:select empno,ename,sal,comm from emp where comm is null;
結果如下圖所示:

2、非空值SQL語句:Is not null
示例:
SQL語句:select empno,ename,sal,comm from emp where comm is not null;

IN操作:
在列中選擇中符合條件的相應的行,即在一個表中的某一列選擇多行的情況。
判斷某一列符合IN括號后面的N個值。
SQL語句:where 列名 in(值,...,值)

示例:
選擇工作為銷售員、經理、分析師的員工姓名,工作,工資;

SQL語句:Select ename,job,sal from emp where job in('SALESMAN','PRESIDENT','ANALYST');

等價於:

注意:
1、因為調用了函數IN(),因此執行速度要慢;
2、or在明確知道某一行的字段的時候使用;
3、用從一個表查詢出的結果(結果可能是一個也可能是多個結果)去另一個表查詢的時候,無法知道查詢出的結果字段,此時只能使用IN操作。

擴展:
SQL語句:select ename,sal,job from emp where job not in('SALESMAN','PRESIDENT' ,'ANALYST');

SQL語句:select ename,sal,job from emp where job!='SALESMAN' AND job!='PRESIDENT' AND job!='ANALYST';

實例
A表 B表 C表
學號 姓名 課程編號 課程名稱 學號 課程編號
001 張三 A 語文 001 A
002 李四 B 數學 002 B
…… …… C 英語 003 C
…… …… …… ……

請寫出如下SQL語句
1)查詢出選擇“語文”課程的學號、姓名。
Select 姓名,學號 from A where 學號 IN(Select 學號 from C where 課程編號=(Select 課程編號 from B where 課程名稱=’語文’));

2)查詢出張三選課的課程名稱。
Select 課程名稱 from B where 課程編號 IN(Select 課程編號 from C where 學號=(Select 學號 from A where 姓名=’張三’ ));


免責聲明!

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



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