仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 620|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL网页设计切磋SQL Server 2005的评价函数

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
根据Evans的调查报告,“MySQL的使用在未来将继续呈成长趋势。” 1、简介

  在2005年11月份,微软刊行了三种新产物系列:VisualStudio2005,SQLServer2005和.NET框架2.0(它包含ASP.NET2.0)。SQLServer2005是微软自从其上一个次要刊行版本SQLServer2000以来最新版本的数据库平台。在已往五年的开展中,SQLServer中到场了大批的新特性,一切这些新内容都被总结到微软网站的一篇文章《WhatsNewinSQLServer2005?》中。利用SQLServer2005作为后端数据库构建基于web使用程序的开辟者极可能会对这些新特性抱有浓郁的乐趣,这些新特性包含新的T-SQL改善,更好的VisualStudio集成,与CLR/.NET框架的集成,和SQLServer2005ManagementStudio使用程序(它是SQLServer2000的企业办理器的一个更加"光滑"的版本)。

  与之前的SQLServer2000比拟,2005中的T-SQL改善使得编写某些范例的查询极其简单。在SQLServer2005中,T-SQL语法更加简练、可读和易于了解。

  在本文中,我们将专门切磋SQLServer2005的评价函数,它们年夜年夜简化了对查询了局举行评价的历程。

  2、数据模子和评价了局基本

  在我们剖析怎样利用一般查询形式之前,让我们起首创立一个可以运转这些查询的数据模子。在本文中,我利用SQLServer2005Express版原本完成我的演示,而且包含了一个数据库和一个ASP.NET2.0网站(请参考本文响应的完全源码。就象VisualStudio一样,SQLServer刊行中也一同加杂了别的一些分歧的版本。个中,Express版本是一个针对专业喜好者、先生等群体的收费版本。假如你下载和安装VisualWebDeveloper(VisualStudio针对web开辟者的Express版本),那末你能够选择一同安装SQLServer2005Express版本)。

  关于本文中的示例,我们将利用一个含有产物、发卖职员(雇员)、主顾和定单信息的数据库。我们利用五个表来建模:Customers,Employees,Products,Orders和OrderItems。个中,Customers,Employees和Products表分离包括每个主顾,雇员和产物信息的行纪录数据。每当一个主顾举行购置举动,一条新纪录被增加到Orders表中,个中的信息唆使该主顾完成了购置、该雇员举行的这一发卖举动及定单的日期。个中,OrderItems映照定单中的每件产物,产物的数目和代价总值(假定较年夜的购置量能够打折)。下图展现了这些表(及字段)和它们之间的干系。


 
如图所展现的,这个OrderItems在Orders和Products表之间创建一个对多对的毗连。
  当构建呈报或剖析数据时,用户或办理员常常但愿看到以某种体例对数据的评价信息。比方,你的老板大概想要一个呈报来显现卖路最好的前十项,或在第三个季度发卖部中完成最年夜支出的前三名发卖职员。更庞大的情形多是仅前往第3到第5个评价排名的发卖职员。在SQLServer2000中,前往最高排名项的查询能够经由过程利用TOP或ROWCOUNT关头字来完成。为了检索一个特定评价子集,你必要利用一种"派生表"(大概是一种基于视图的手腕)。

  SQLServer2005中引进了四个新的评价函数:ROW_NUMBER,RANK,DENSE_RANK和NTILE。只管这些与SQLServer2000所供应的函数比拟是一个分明的前进,可是这些函数的利用仍旧存在一些限定(请求利用派生表或视图来完成功效更加壮大的使用程序)。上面让我们剖析一下每个函数。

  3、利用ROW_NUMBER函数盘算行数

  这个ROW_NUMBER函数把一个序数值赋给每个前往的纪录,该序数值依附于一个特定的与这个函数一同利用的ORDERBY语句。函数ROW_NUMBER的语法是:ROW_NUMBER()OVER([partition]ORDERBY子句)。比方,以下查询将前往从最贵的到最廉价的产物,对每种产物按代价举行评价:

SELECTProductID,Name,Price,ROW_NUMBER()OVER(ORDERBYPriceDESC)AsPriceRankFROMProducts
  这个语句的实行了局以下表所示:
共3页:上一页1[2][3]下一页

“对于MySQL数据库,无论是在开发方面,还是支持方面,现在有大量强大的MySQL学习教程可以选择。每一个新手开发者可以轻松地使用MySQL数据库进行开发。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-19 08:42:28 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-1 21:02:22 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
地板
 楼主| 发表于 2015-2-7 15:36:54 | 只看该作者
入门没那么困难,精通没那么容易
再现理想 该用户已被删除
5#
发表于 2015-2-22 15:51:49 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
莫相离 该用户已被删除
6#
发表于 2015-3-7 00:48:32 | 只看该作者
无法深入到数据库系统层面去了解和探究
谁可相欹 该用户已被删除
7#
发表于 2015-3-14 02:28:58 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
爱飞 该用户已被删除
8#
发表于 2015-3-20 23:45:46 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表