牛腩快讯发布系统(2)使用存储过程查询表

牛腩新闻发布系统(2)使用存储过程查询表

          很多人接触数据库,从数据库表中查记录最早应该是利用SQL语句字符串,这也是我们开始操作数据库表使用的SQL语言,那时也看过存储过程,只是不理解存储过程什么意思,现在也只是简单应用,了解一点点而已。

          形象一些,存储过程就是完成一个特定功能的东西,和函数差不多,是一段程序代码的集合。

         下面是通过在一个系统中的具体应用来帮助学习、掌握、理解存储过程。同时学习也是一步一步逐渐深入的学习,从了解、认识、理解、应用的一个过程,学习的知识在于应用,也只有会灵活应用了,才是自己的。

         存储过程概念:

         存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
         创建语句:
          牛腩快讯发布系统(2)使用存储过程查询表
        

        1  例如:建立一个存储过程,从“新闻类表”category、“新闻表”news中查询最新的新闻若干条新闻(上一篇博客中已有这两个表的描述)

      牛腩快讯发布系统(2)使用存储过程查询表

            上面代码是通过外键关联从category 、news两个表中查询最新的新闻,n 、c 分别为表起的别名(alias)。

            红色框表示内连接,此外还有交叉联接、外联接(左向外联接,右向外联接,完整外联接)等类型,常用的是内连接,

           内联接的格式为:                                              

           数据表1  inner join  数据表2  on  联接表达式

           指定返回两个表中所有匹配的行。

        2  建立一个根据评论数,查询热点新闻的存储过程。

        牛腩快讯发布系统(2)使用存储过程查询表

        想要应用存储过程本质上还是要熟练运用SQL查询语句,语法如下:

       牛腩快讯发布系统(2)使用存储过程查询表

        方框中的是不经常用但很重要的查询关键字,其含义如下:

        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之间执行时,速度会快一些。

       什么时候使用存储过程比较合适?




7楼lishehe昨天 20:48
[e03]
Re: lilongsheng1125昨天 21:17
回复lishehen呵呵………………
6楼missysm586前天 09:20
好久没有写sql语句了,值得回味
Re: lilongsheng1125前天 09:20
回复missysm586n以后不用了呀
5楼xqf309前天 09:19
不错不错
4楼lfmilaoshi前天 09:19
很有条理,不错。。。米老师
Re: lilongsheng1125前天 09:19
回复lfmilaoshin谢谢。
3楼a137151062前天 21:16
看不出门道,但是感觉不错
2楼yjjm19903天前 14:26
嗯,学习学习……
Re: lilongsheng11253天前 17:12
回复yjjm1990n恩……
1楼lsh66883天前 08:41
很好 学习了
Re: lilongsheng11253天前 09:07
回复lsh6688n专家看着应该比较简单……