oracle學習筆記之二限制和排列資料

2021-04-28 18:40:02 字數 4773 閱讀 2316

1.限定被選擇的資料行

select *|

from   table

where condition(s)];

例:select ename,job,deptno

from   emp

where  job='clerk';

結果:ename   job    deptno 

smith   clerk    20 

adams   clerk    20 

james   clerk    30 

miller  clerk    10 

注:字串和日期型數值都要用單引號引起來

字元型數值是區分大小寫的

日期型數值是區分日期表達形式的

預設的日期形式是dd-mon-rr

2.比較操作符

=                  等於

>                  大於

>=                 大於等於

<                  小於

<=                 小於等於

<>或!=             不等於

between...and...   兩個值之間(包含) 

in(list)           和多個值中任何乙個匹配

like               字形匹配

is null            是空值

1)使用比較操作符:

例1:select ename,sal,comm

from   emp

where  sal<=comm;

結果:ename    sal     comm 

martin   1250    1400 

例2:select ename,sal,hiredate

from   emp

where  hiredate>'10-9月-07'

and    sal>1000;

2)使用between運算子

例:select  ename,sal

from    emp

where   sal between 1000 and 1500;

結果:ename     sal 

ward     1250 

martin   1250 

turner   1500 

adams    1100 

miller   1300

3)使用in運算子

例:select  empno,ename,sal,mgr

from    emp

where   mgr in (7902,7566,7788);

結果:empno   ename    sal    mgr 

7369    smith    2000   7902 

7788    scott    3000   7566 

7876    adams    1100   7788 

7902    ford     3000   7566

4)使用like運算子:

例1:select  ename,sal

from    emp

where   ename like 's%';

結果:ename   sal 

smith   2000 

scott   3000 

例2:select  ename,sal

from    emp

where   ename like '_a%';

結果:ename    sal 

ward     1250 

martin   1250 

james    950 

注:「%」表示零個或任意更多的字元

「_」表示乙個字元

可以使用escape識別符號實現對「%」和「_」的查詢

例3:select ename

from   emp

where  ename like '%a/_b%' escape '/';

5)使用空值運算子

例7:

select ename,mgr

from   emp

where  mgr is null;

結果:ename    mgr 

king 

3.邏輯運算子

and         如果兩部分條件都為真則返回真值

or          兩部分條件中的任何乙個為真則返回真值

not         如果條件為假則返回真值 

例1:select empno,ename,job,sal

from   emp

where  sal>=1100

and    job='clerk';

例2:select empno,ename,job,sal

from   emp

where  sal>=1100

or     job='clerk';

例3:select ename,job

from   emp

where  job not in('clerk','manager','analyst');

4.運算子優先順序

計算順序            運算子

1                所有比較運算子

2                not

3                and

4                or

注:使用括號可以改變運算子的優先順序

例1:select empno,ename,job,sal

from   emp

where  job='salesman'

or     job='president'

and    sal>1500;

//先運算and再運算or

例2:select empno,ename,job,sal

from   emp

where  (job='salesman'

or     job='president')

and    sal>1500;

//使用了括號,先運算or再運算and

5.排序

使用order by子句對行排序

-asc:公升序,預設值

-desc:降序

order by子句出現在select語句的最後

例1:select ename,job,deptno,hiredate

from   emp

order by hiredate;

例2:select ename,job,deptno,hiredate

from   emp

order by hiredate desc;

例3:select empno,ename,sal*12 annsal

from   emp

order by annsal;

6.多列參與排序

order by列表的順序就是資料排列的順序

可以用沒有在select列表中出現的列進行排序

例:select ename,deptno,sal

from   emp

order by deptno,sal desc;

練習1.查詢emp表,顯示薪水大於2000,且工作類別是manager的雇員資訊

select *

from   emp

where  sal>2000

and    job='manager';

2.查詢emp表,顯示年薪大於30000,工作類別不是manager的雇員資訊

select *

from   emp

where  sal*12 >30000

and    job not like 'm%';

3.查詢emp表, 顯示薪水在1500到3000之間,工作類別以「m」開頭的雇員資訊

select *

from   emp

where  sal between 1500 and 3000

and    job like 'm%';

4.查詢emp表,顯示佣金為空並且部門號為20或30的雇員資訊

select *

from   emp

where  deptno in (20,30)

and    comm is null;

或者:select *

from   emp

where  (deptno=20

or      deptno=30)

and    comm is null;

5.查詢emp表,顯示佣金不為空或者部門號為20的雇員資訊,要求按照薪水降序排列

select   *

from     emp

where    deptno=20

or       comm is not null

order by sal desc;

6.查詢emp表,顯示年薪大於30000工作類別不是manager,且部門號不是10或40的雇員資訊,要求按照雇員姓名進行排列

select   *

from     emp

where    sal*12 >30000

and      job not like 'manager'

and      deptno not in(10,40)

order by ename;

Oracle學習筆記之二

筆錄oracle oracle完全學習手冊 2017 08 18 整體把握oracle資料庫,了解資料庫的體系架構 1.oracle資料庫的體系結構 物理儲存結構,邏輯儲存結構,記憶體結構,例項程序結構 2.oracle物理儲存結構 oracle物理上是由儲存在作業系統的檔案組成 資料檔案 dbf ...

oracle學習記錄之二

1.修改使用者密碼 passw 修改自己的密碼 alter user xiaoming identified by m1234 需要管理員許可權使用者才能給別的使用者改密碼 2.授予使用者連線到資料庫及建表等許可權 grant connect to xiaoming 授予xiaoming連線到資料庫...

SDL學習筆記之二

sdl su ce image sdl loadbmp image.bmp 2.從乙個表面,進行塊複製到另乙個表面 sdl blitsu ce int sdl blitsu ce sdl su ce src,sdl rect sr,sdl su e dst,sdl rect dr 第二個引數指定要傳...