對單個表進(jìn)行查詢
下面考慮SQL對單個表進(jìn)行簡單的查詢。為了進(jìn)行實例分析,下面我們先建立三個表:
學(xué)生信息表ST:
學(xué)生注冊表EN:
面授安排表CL:
、 使用SQL進(jìn)行投影
投影是指取表的某些列的字段值。下面是使用SQL語句進(jìn)行投影的例子,從ST表中列出需要的學(xué)號、姓名和主修:
、 使用SQL進(jìn)行選擇
選擇是指到表的某些行的記錄值。請看下面的例子:
SELECT 學(xué)號,姓名,主修,年齡 FROM ST WHERE 主修=‘MATH’
SELECT * FROM ST WHERE 主修=‘MATH’
上述兩條件命令的結(jié)果是一樣的。我們可以將投影和選擇進(jìn)行合并如下:
SELECT 姓名,主修,年齡 FROM ST WHERE 主修=‘MATH’
SELECT 姓名,主修,年齡 FROM ST WHERE 主修=‘MATH’AND 年齡>21
SELECT 姓名,主修,年齡 FROM ST WHERE 主修 IN(‘MATH’,‘ACCOUNTING’)
SELECT 姓名,主修,年齡 FROM ST WHERE 主修 NOT IN(‘MATH’,‘ACCOUNTING’)
、 SQL排序
SELECT 姓名,主修,年齡 FROM ST WHERE 主修=‘ACCOUNTING’ ORDER BY 姓名
SELECT 姓名,主修,年齡 FROM ST WHERE 主修 IN(‘MATH’,‘ACCOUNTING’) ORDER BY 姓名 DESC,年齡 ASC
、 SQL內(nèi)置函數(shù)
SQL主要提供了前面我們提到的五個內(nèi)置函數(shù):COUNT、SUM、AVG、MAX、MIN。
SELECT COUNT(*) FROM ST
上述語句計算表ST中的行數(shù),并用一行一列表示出來。
注意:除非和GROUP BY相連,在查詢的項中SELECT后內(nèi)置函數(shù)一般不和字段名一起使用。如下面的查詢語句雖然不是非法的,但結(jié)果的含義不清:
、 SQL內(nèi)置函數(shù)和分組
為了增強(qiáng)統(tǒng)計內(nèi)置函數(shù)的功能,內(nèi)置函數(shù)可以和分組函數(shù)合用,將源表中的數(shù)據(jù)分組,再對每一分組生成一個匯總行。例如:學(xué)生可以按照主修專業(yè)進(jìn)行分組,這意味著每一個專業(yè)將形成一個分組,然后可以對每一組進(jìn)行一定的統(tǒng)計。
有時,我們不需要得到每一個分組的值,例如,我們對學(xué)生按照專業(yè)進(jìn)行分組,然后只需要具有兩個以上的行數(shù)的分組,在這種情況下,我們需要用到SQL中的HAVING關(guān)鍵字對不符合條件的分組進(jìn)行過濾。
下面的SQL語句可以統(tǒng)計出具有兩個以上學(xué)生的專業(yè),并統(tǒng)計該專業(yè)的學(xué)生數(shù)。
在上面的查詢中,還可以對查詢的學(xué)生進(jìn)行條件選擇,使用關(guān)鍵字WHERE進(jìn)行查詢,但是這樣會產(chǎn)生一定的模糊性,請看下例的結(jié)果,分析之:
從上述結(jié)果來看,首先選擇適合條件的學(xué)生,對選擇出來的學(xué)生進(jìn)行分組,去除不適合HAVING條件的分組,顯示得到結(jié)果。
2015職稱計算機(jī)考試書PowerPoint2007中 .. 定價:¥45 優(yōu)惠價:¥42 更多書籍 | |
2015年全國職稱計算機(jī)考試教材(2007模 .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |