SELECT子句查詢是對基本表或視圖中的內(nèi)容進(jìn)行查詢,并將數(shù)據(jù)返回顯示,數(shù)據(jù)表中的值是什么,返回的值就是什么。然而在實(shí)際應(yīng)用中,用戶經(jīng)常需要對數(shù)據(jù)表中數(shù)據(jù)進(jìn)行簡單的運(yùn)算后再顯示出來。
本實(shí)例對STU表的SAGE字段進(jìn)行算術(shù)運(yùn)算,將所有學(xué)生的年齡加1,再將其學(xué)號、姓名、年齡和性別輸出。本實(shí)例執(zhí)行完成后,在SQL*Plus中查看返回結(jié)果,如圖1所示。
圖1 對數(shù)據(jù)列進(jìn)行運(yùn)算并輸出
【實(shí)現(xiàn)代碼】

【范例解析】
本實(shí)例需要對每個(gè)學(xué)生的年齡加1后顯示結(jié)果,可以使用SELECT語句來實(shí)現(xiàn),這就需要是對數(shù)據(jù)列進(jìn)行算術(shù)運(yùn)算的SELECT查詢語句。SELECT子句支持直接在列名上進(jìn)行算術(shù)運(yùn)算并輸出查詢結(jié)果。
需要讀者注意的是,對數(shù)據(jù)列進(jìn)行算術(shù)運(yùn)算的SELECT子句并不會(huì)改變原基本表或視圖中的數(shù)據(jù),一旦查詢釋放,其運(yùn)算結(jié)果也被釋放,而不會(huì)寫入到原表或視圖中,數(shù)據(jù)表中的數(shù)據(jù)仍然如圖2所示。這是因?yàn)镾ELECT語句只是查詢語句,而不是數(shù)據(jù)操作的SQL語句。
圖2 原數(shù)據(jù)表不變
從圖1中可看出,返回結(jié)果中顯示的是經(jīng)過運(yùn)算后的列,為了查詢后的結(jié)果更具有可讀性,通??梢詾樵擃惒樵兘Y(jié)果指定通俗易懂的別名。用戶可根據(jù)顯示需要,對表或視圖的一個(gè)顯示字段指定別名,也可對多個(gè)顯示字段指定,指定格式只需在原字段名即表名后加空格再加別名名稱即可,常用語句為:

本實(shí)例中將上述SQL代碼進(jìn)行改寫,使得顯示出來的每個(gè)列名具有更好的可讀性,則實(shí)現(xiàn)代碼如下:

可以看出,上述SQL語句不僅指定了經(jīng)過算術(shù)運(yùn)算后的列的別名,也為數(shù)據(jù)表中需顯示的所有列指定想要的別名,該語句在SQL*Plus中執(zhí)行后其返回結(jié)果如圖3所示。
圖3 指定列別名
注意:對數(shù)據(jù)列進(jìn)行算術(shù)運(yùn)算時(shí),必須要保證該列的數(shù)據(jù)類型是可運(yùn)算的,否則將出現(xiàn)錯(cuò)誤提示。