读书人

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

发布时间: 2012-08-11 20:50:31 作者: rapoo

牛腩新闻发布系统(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专家看着应该比较简单……

读书人网 >其他相关

热点推荐