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