|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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数据库进行开发。 |
|