oracle語句相關

2021-04-13 01:45:50 字數 1948 閱讀 2900

巢狀查詢

定義:1 .

指在乙個外層查詢中包含有另乙個內層查詢。其中外層查詢稱為主查詢,內層查詢稱為子查詢。

2 .sql

允許多層巢狀,由內而外地進行分析,子查詢的結果作為主查詢的查詢條件

3 .子查詢中一般不使用

order by

子句,只能對最終查詢結果進行排序

子查詢(sub query)

where

表示式[ not ] in (

子查詢)

where

表示式比較運算子

[ any|all ]

子查詢where [ not ] exists (

子查詢)

1 .子查詢-單值比較

返回單值子查詢,只返回一行一列

主查詢與單值子查詢之間用比較運算子進行連線:

運算子: > , >= , < , <= , = , <>

例:找出與太行同齡的同事

select * from company

where age = ( select age from company

where name = taihang)

2 .子查詢-

in 例:查詢選修了

001 』

課程的學生學號,姓名。

select id,name

from student

where id in ( select id

from taihang

where id = ' 001 ' )

3 .子查詢-多值比較

all多行一列

1 .父查詢與多值子查詢之間的比較需用

all來連線

2 .標量值

s比子查詢返回集

r中的每個都大時,

s >all ,r

為true

3 .all

表示所有

4 . >all , =all , <=all , <>all ,

注:all

等價於not in

例:找出年齡最小的學生

select * from student

where age

4 .子查詢-多值比較

some /any

1 .父查詢與多值子查詢之間的比較需用

some / any

來連線2 .

標量值s

比子查詢返回集

r中的某乙個都大時,

s > some時r

為true

或s > any時r

為true

3 .some

表示部分

4 . >some , >=some , =some , some ,

注:= some

等價於in, <> some

不等價於

not in .

例:找出不是最小年齡的學生

select * from student

where age > some ( select age from student)

5 .子查詢-存在判斷

exists

1 . exists

子查詢用來判斷該子查詢是否返回元組

2 .當子查詢的結果集非空時,

exists

為true

3 .當子查詢的結果集為空時,

exists

為false

4 .不關心子查詢的具體內容,因此用

select *

例:列出先修了

c01課程的學習的學號,姓名

select son,sname

from strdent

where exists ( select * from sc

where sc.sno = stusent.sno and

cno = ' c01 ' )

Oracle相關語句(三)

語法格式 select 列名1 as 別名1 列名2,列名n from 表名 where 條件 order by 列名1 asc desc,列名2 asc desc,範例 查詢部門10下的所有員工的empna,ename。select empno,ename from emp where deptn...

oracle相關操作SQL語句

一 選擇出oracle中的所有使用者 select from dba users 此語句可以查詢出,所有使用者的詳細資訊,包括使用者名稱 登陸密碼 預設表空間 預設臨時表空間 使用者建立的日期 使用者的id等等資訊 select from all users 此語句可以查詢出,所有使用者的使用者名稱...

oracle表空間相關語句

1 檢視表空間檔案 select from dba data files 2 檢視使用者的預設表空間 select username,default tablespace from dba users 3 檢視表空間大小 select t.tablespace name,round sum byte...