牛腩新闻发布系统(2)使用存储过程查询表
? ? ? ? ? 很多人接觸數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)表中查記錄最早應(yīng)該是利用SQL語(yǔ)句字符串,這也是我們開(kāi)始操作數(shù)據(jù)庫(kù)表使用的SQL語(yǔ)言,那時(shí)也看過(guò)存儲(chǔ)過(guò)程,只是不理解存儲(chǔ)過(guò)程什么意思,現(xiàn)在也只是簡(jiǎn)單應(yīng)用,了解一點(diǎn)點(diǎn)而已。
? ? ? ? ? 形象一些,存儲(chǔ)過(guò)程就是完成一個(gè)特定功能的東西,和函數(shù)差不多,是一段程序代碼的集合。
? ? ? ? ?下面是通過(guò)在一個(gè)系統(tǒng)中的具體應(yīng)用來(lái)幫助學(xué)習(xí)、掌握、理解存儲(chǔ)過(guò)程。同時(shí)學(xué)習(xí)也是一步一步逐漸深入的學(xué)習(xí),從了解、認(rèn)識(shí)、理解、應(yīng)用的一個(gè)過(guò)程,學(xué)習(xí)的知識(shí)在于應(yīng)用,也只有會(huì)靈活應(yīng)用了,才是自己的。
? ? ? ? ?存儲(chǔ)過(guò)程概念:
? ? ? ? ?存儲(chǔ)過(guò)程(Stored Procedure)是一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。 ? ? ? ? ?創(chuàng)建語(yǔ)句: ? ? ? ? ?? ? ? ? ??? ? ? ? 1 ?例如:建立一個(gè)存儲(chǔ)過(guò)程,從“新聞?lì)惐怼眂ategory、“新聞表”news中查詢最新的新聞若干條新聞(上一篇博客中已有這兩個(gè)表的描述)
? ? ??
? ? ? ? ? ? 上面代碼是通過(guò)外鍵關(guān)聯(lián)從category 、news兩個(gè)表中查詢最新的新聞,n 、c 分別為表起的別名(alias)。
? ? ? ? ? ? 紅色框表示內(nèi)連接,此外還有交叉聯(lián)接、外聯(lián)接(左向外聯(lián)接,右向外聯(lián)接,完整外聯(lián)接)等類型,常用的是內(nèi)連接,
? ? ? ? ? ?內(nèi)聯(lián)接的格式為: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?數(shù)據(jù)表1 ?inner join ?數(shù)據(jù)表2 ?on ?聯(lián)接表達(dá)式
? ? ? ? ? ?指定返回兩個(gè)表中所有匹配的行。
? ? ? ? 2 ?建立一個(gè)根據(jù)評(píng)論數(shù),查詢熱點(diǎn)新聞的存儲(chǔ)過(guò)程。
? ? ? ??
? ? ? ? 想要應(yīng)用存儲(chǔ)過(guò)程本質(zhì)上還是要熟練運(yùn)用SQL查詢語(yǔ)句,語(yǔ)法如下:
? ? ? ?
? ? ? ? 方框中的是不經(jīng)常用但很重要的查詢關(guān)鍵字,其含義如下:
? ? ? ? ALL:指明查詢結(jié)果中可以顯示值相同的列ALL是系統(tǒng)默認(rèn)的 ? ? ? ??DISTINCT:指明查詢結(jié)果中如果有值相同的列,則只顯示其中的一列。對(duì)DISTINCT選項(xiàng)來(lái)說(shuō),Null 值被認(rèn)為是相同的值 ? ? ? ?TOP n ?[PERCENT]:指定返回查詢結(jié)果的前n行數(shù)據(jù),如果PERCENT關(guān)鍵字指定的話,則返回查詢結(jié)果的前百分之n行數(shù)據(jù)。? ? ? ?group_by_expression:指明分組條件group_by_expression通常是一個(gè)列名,但不能是列的別名。
? ? ??ORDERBY子句指定查詢結(jié)果的排序方式。
? ? ??ASC(ascending):指明查詢結(jié)果按升序排列這是系統(tǒng)默認(rèn)值 ? ? ??DESC(descending):指明查詢結(jié)果按降序排列
? ? ? ?在大點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)中,存儲(chǔ)過(guò)程具有很重要的作用。就本質(zhì)而言它是SQL語(yǔ)句和流程控制語(yǔ)句的集合。存儲(chǔ)過(guò)程在運(yùn)算時(shí)生成執(zhí)行方式,所以以后對(duì)其再運(yùn)行時(shí)其執(zhí)行速度很快。
? ? ? ?我們可以多多運(yùn)用,尤其是在Web-Server之間執(zhí)行時(shí),速度會(huì)快一些。
? ? ? ?什么時(shí)候使用存儲(chǔ)過(guò)程比較合適?
轉(zhuǎn)載于:https://www.cnblogs.com/lilongsheng1125/archive/2012/07/19/4978643.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的牛腩新闻发布系统(2)使用存储过程查询表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在win7下安装SQL sever200
- 下一篇: Object_Type列表