在實(shí)際應(yīng)用中,用戶需要的并不是數(shù)據(jù)表中的所有記錄,而是滿足一定條件的記錄,這就需要實(shí)現(xiàn)條件查詢。ANSI/OSI SQL標(biāo)準(zhǔn)中使用WHERE子句實(shí)現(xiàn)條件查詢。單條件查詢是指WHERE子句后的條件只有一個(gè),這種類型的條件查詢是最為簡單的。構(gòu)成條件的謂詞都是由條件表達(dá)式組成的,也即由表達(dá)式和一系列的運(yùn)算符組成。
本實(shí)例對(duì)于基本表STU,查詢并返回學(xué)號(hào)為“120002”的學(xué)生的姓名、性別、年齡和所在班級(jí)等信息,本實(shí)例執(zhí)行完成后,SQL*Plus控制端輸出如圖1所示的結(jié)果。
圖1 單條件查詢
【實(shí)現(xiàn)代碼】
【范例解析】
本實(shí)例使用了WHERE子句實(shí)現(xiàn)單條件查詢,WHERE子句后的條件表達(dá)式由STU表的字段SNO,其值為120002和比較運(yùn)算符“=”組成。單條件查詢最值得注意的地方在于其條件語句的實(shí)現(xiàn),由表達(dá)式和上述比較運(yùn)算符組成的條件判斷語句的格式繁多,基本的單條件查詢語句格式如下:
一般情況下,條件表達(dá)式由基本表或視圖的字段名、值和比較運(yùn)算符組成。條件表達(dá)式中,比較運(yùn)算符右邊的值的數(shù)據(jù)類型是非常重要的。在本實(shí)例SQL語句中,“120002”是一個(gè)字符串?dāng)?shù)據(jù)類型,因此引用其需要加''號(hào),如果是數(shù)值型數(shù)據(jù)類型,如年齡字段的值25,在引用的時(shí)候不需為其加''。
構(gòu)成條件的謂詞都是由條件表達(dá)式組成的,也即由表達(dá)式和一系列的運(yùn)算符組成。最常見的條件運(yùn)算符為比較運(yùn)算符,常見比較運(yùn)算符如表1所示。
表1 常見比較運(yùn)算符
注意:單條件查詢中返回輸出的是滿足WHERE子句條件的所有記錄,即條件為真(TRUE),因此,如需返回表所有記錄,條件可以是不為零的常數(shù)。