牛腩新闻发布系统(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/p/4978643.html