仓酷云

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

[学习教程] MYSQL网站制作之SQLServer XML查询18句话进门教程

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
业界普遍的声音认为:“MySQL是一个可靠的数据库系统,MySQL学习教程无论是在嵌入式或大型群集系统的部署中,还是在基于Web的应用程序领域。复制代码代码以下:
/*01.
02.sqlxml进门:
03.--byjinjazz
04.--http://blog.csdn.net/jinjazz
05.
06.1、xml:能熟悉元素、属性和值
07.
08.2、xpath:寻址言语,相似windows目次的查找(没用过dir命令的话就往面壁)
09.
10.语法格局,这些语法能够组合为前提:
11."."暗示本人,".."暗示父亲,"/"暗示儿子,"//"暗示儿女,
12."name"暗示按名字查找,"@name"暗示按属性查找
13.
14."汇合[前提]"暗示依据前提取汇合的子集,前提能够是
15.数值:数字,last(),last()-数字等
16.布尔值:position()<数字,@name=前提,name=前提
17.前提是布尔值的时分能够兼并盘算:andor
18.
19.3、xquery:基于xpath标的准查询言语,sqlserverxquery包括以下函数
20.exist(xpath前提):前往布尔值暗示节点是不是存在
21.query(xpath前提):前往由切合前提的节点构成的新的xml文档
22.value(xpath前提,数据范例):前往指定的标量值,xpath前提了局必需独一
23.nodes(xpath前提):前往由切合前提的节点构成的一行一列的了局表
24.*/

复制代码代码以下:
declare@dataxml
set@data=
<bookstore>
<bookcategory="COOKING">
<titlelang="en">EverydayItalian</title>
<author>GiadaDeLaurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<bookcategory="CHILDREN">
<titlelang="jp">HarryPotter</title>
<author>JK.Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<bookcategory="WEB">
<titlelang="en">XQueryKickStart</title>
<author>JamesMcGovern</author>
<author>PerBothner</author>
<author>KurtCagle</author>
<author>JamesLinn</author>
<author>VaidyanathanNagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<bookcategory="WEB">
<titlelang="cn">LearningXML</title>
<author>ErikT.Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>


--测试语句,假如不睬解语法请参考下面的xpath划定规矩和xquery函数申明

--1、文档
select@data
--2、恣意级别是不是存在price节点
select@data.exist(//price)
--3、猎取一切book节点
select@data.query(//book)
--4、猎取一切包括lang属性的节点
select@data.query(//*[@lang])
--5、猎取第一个book节点
select@data.query(//book[1])
--6、猎取前两个book节点
select@data.query(//book[position()<=2])
--7、猎取最初一个book节点
select@data.query(//book[last()])
--8、猎取price>35的一切book节点
select@data.query(//book[price>35])
--9、猎取category="WEB"的一切book节点
select@data.query(//book[@category="WEB"])
--10、猎取title的lang="en"的一切book节点
select@data.query(//book/title[@lang="en"])
--11、猎取title的lang="en"且price>35的一切book节点
select@data.query(//book[./title[@lang="en"]orprice>35])
--12、猎取title的lang="en"且price>35的第一book的(第一个)title
select@data.query(//book[./title[@lang="en"]andprice>35]).value((book/title)[1],varchar(max))
--13、等价于12
select@data.value((//book[./title[@lang="en"]andprice>35]/title)[1],varchar(max))
--14、猎取title的lang="en"且price>35的第一book的(第一个)title的lang属性
select@data.value(((//book[@category="WEB"andprice>35]/title)[1]/@lang)[1],varchar(max))
--15、猎取第一本书的title
selectTab.Col.value((book/title)[1],varchar(max))astitle
from@data.nodes(bookstore)asTab(Col)
--16、猎取每本书的第一个author
selectTab.Col.value(author[1],varchar(max))astitle
from@data.nodes(//book)asTab(Col)
--17、猎取一切book的一切信息
select
T.C.value(title[1],varchar(max))astitle,
T.C.value(year[1],int)asyear,
T.C.value(title[1],varchar(max))astitle,
T.C.value(price[1],float)asprice,
T.C.value(author[1],varchar(max))asauthor1,
T.C.value(author[2],varchar(max))asauthor2,
T.C.value(author[3],varchar(max))asauthor3,
T.C.value(author[4],varchar(max))asauthor4
from@data.nodes(//book)asT(C)
--18、猎取不是日语(lang!="jp")且代价年夜于35的书的一切信息
select
T.C.value(title[1],varchar(max))astitle,
T.C.value(year[1],int)asyear,
T.C.value(title[1],varchar(max))astitle,
T.C.value(price[1],float)asprice,
T.C.value(author[1],varchar(max))asauthor1,
T.C.value(author[2],varchar(max))asauthor2,
T.C.value(author[3],varchar(max))asauthor3,
T.C.value(author[4],varchar(max))asauthor4
from@data.nodes(//book[./title[@lang!="jp"]andprice>35])asT(C)如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。
沙发
发表于 2015-1-19 06:17:35 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
只想知道 该用户已被删除
板凳
发表于 2015-1-24 18:35:33 | 只看该作者
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-2 11:50:13 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-7 19:56:58 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
小女巫 该用户已被删除
6#
发表于 2015-2-23 09:44:54 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
深爱那片海 该用户已被删除
7#
发表于 2015-3-7 07:15:41 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-14 15:27:29 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
谁可相欹 该用户已被删除
9#
发表于 2015-3-21 11:57:43 | 只看该作者
大家注意一点。如下面的例子:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-20 19:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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