數(shù)據(jù)庫(kù)中top的用法
數(shù)據(jù)庫(kù)中top的用法
數(shù)據(jù)庫(kù)中top的用法的用法你知道嗎?下面小編就跟你們?cè)敿?xì)介紹下數(shù)據(jù)庫(kù)中top的用法的用法,希望對(duì)你們有用。
數(shù)據(jù)庫(kù)中top的用法的用法如下:
在編寫(xiě)程序中,我們可能遇到諸如查詢(xún)最熱門(mén)的5篇文章或返回滿(mǎn)足條件的n條記錄的情況,在SQL語(yǔ)言中,可以使用TOP關(guān)鍵字來(lái)實(shí)現(xiàn)。
TOP關(guān)鍵字在SQL語(yǔ)言中用來(lái)限制返回結(jié)果集中的記錄條數(shù),其使用方法有兩種形式,下面做以詳細(xì)的介紹:
?。?)返回確定數(shù)目的記錄個(gè)數(shù)
語(yǔ)法格式: SELECT TOP n <列名表> FROM <表名> [查詢(xún)條件]
其中,n為要返回結(jié)果集中的記錄條數(shù)
?。?)返回結(jié)果集中指定百分比的記錄數(shù)
語(yǔ)法格式: SELECT TOP n PERCENT <列名表> FROM <表名> [查詢(xún)條件]
其中,n為所返回的記錄數(shù)所占結(jié)果集中記錄數(shù)目的百分比數(shù)
舉例說(shuō)明:
假設(shè)數(shù)據(jù)庫(kù)中有一個(gè)表存儲(chǔ)的為學(xué)生的信息(student):
?。?)SELECT TOP 20 * FROM student --查詢(xún)前20名學(xué)生的信息
?。?)SELECT TOP 20 * PERCENT FROM student --查詢(xún)學(xué)生表中前20%的學(xué)生信息
在具體使用過(guò)程中,可以結(jié)合條件子句和排序子句(如何進(jìn)行排序)等實(shí)現(xiàn)較為豐富的功能,如:
?。?)查詢(xún)年齡(sage)大于23的前20名學(xué)生的信息
查詢(xún)語(yǔ)句為:SELECT TOP 20 * FROM student WHERE sage > 23
?。?)查詢(xún)年齡較為大的前20名學(xué)生的信息
查詢(xún)語(yǔ)句為: SELECT TOP 20 * FROM student ORDER BY sage DESC
在假設(shè)有一個(gè)表為新聞表(news),其列名定義如下:
ID 新聞編號(hào), 整數(shù)型 自增字段
Title 新聞標(biāo)題 , 字符串型(varchar)
Content 新聞內(nèi)容,Text型
Hits 點(diǎn)擊次數(shù), 整數(shù)類(lèi)型
AddDateTime 添加時(shí)間 ,字符串(YYYY-MM-DD)
則要求查詢(xún):
?。?)查詢(xún)最新10條新聞,只列出新聞標(biāo)題和添加時(shí)間
SELECT TOP 10 Title, AddDateTime FROM News ORDER BY AddDateTime DESC
說(shuō)明:如果新聞增加時(shí)是按時(shí)間發(fā)生的先后順序添加的話,也可以按ID來(lái)排序(因?yàn)镮D為自增字段,ID越大的應(yīng)越新),即:
SELECT TOP 10 Title, AddDateTime FROM News ORDER BY ID DESC
(2)查詢(xún)最熱門(mén)的8條新聞的標(biāo)題和點(diǎn)擊次數(shù)
查詢(xún)語(yǔ)句為: SELECT TOP 8 Title, Hits FROM News ORDER BY Hits DESC