oracle子查詢就是巢狀查詢,把select查詢的結果作為另乙個select、update或delete語句的條件
它的本質就是where條件查詢中的乙個表示式。
1. 單行子查詢:向外部返回的結果為空或者返回一行。是利用where條件「=」關聯查詢結果的。
如果單行子查詢返回多行會報錯。
例如,查詢stuinfo和class中班級為「資訊科學2班」的所有學生資訊。
(1)利用內關聯進行查詢
select *
from stuinfo a, class b
where a.classno = b.classno and b.classname = '資訊科學2班';
(2)利用單行子查詢
select * from stuinfo
where stuinfo.classno = (select class.classno from class where class.classname = '資訊科學2班');
2.多行子查詢:子查詢返回多行結果,需要利用關鍵字 in、all、any或者運算子、=等來接收子查詢的多行結果。
例如,查詢班級表class中所有班級的所有學生資訊。
關鍵字any:滿足任意條件即可
關鍵字all:必須滿足所有條件
例如,查詢年齡大於25或26的學生資訊,使用關鍵字any
例如,查詢年齡大於25,26的學生資訊,使用關鍵字all
這個例子在這裡有點牽強,畢竟想同時大於25,26只需大於26即可,不過為了了解all的用法,還是這麼寫吧
2. 同義詞(synonym):當前使用者給另乙個使用者的物件建立乙個別名,通過別名進行查詢。
我覺得考試的應該不會考察這個,不過為了保證完整性還是簡單的記下筆記~
共有同義詞:dba建立的,所有使用者都可以訪問。
私有同義詞:當前使用者建立的,只有當前使用者可以訪問。
同義詞的建立語法為:
create [or replace] [public] synosym 當前使用者.同義詞名 for 物件的所有使用者.物件名;
//裡的內容表示可用可不用
Oracle同義詞以及同義詞迴圈鏈錯誤。
就是別名的意思。與檢視類似,是一種對映關係。是表 索引 檢視的物件的別名。建立 create public synonym table name for user.table name 好處 節省資料空間,不同使用者操作同一種表無差別。能夠在不同的資料使用者之間實現無縫互動。簡化物件訪問 和 提高物...
Oracle的同義詞
oracle中建立同義詞語句 create synonym table name foruser.table name 其中第乙個user table和第二個user table可以不一樣。此外如果要建立乙個遠端的資料庫上的某張表的同義詞,需要先建立乙個databaselink 資料庫連線 來擴充套...
ORACLE同義詞詳解
1 同義詞概述 同義詞從字面上理解就是別名的意思,和檢視的功能類似。就是一種對映關係。同義詞擁有如下好處 節省大量的資料庫空間,對不同使用者的操作同一張表沒有多少差別 擴充套件的資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫互動 同義詞可以建立在不同乙個資料庫伺服器上,通過網路實現連線。知識...