精通SQL数据库连接.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精通SQL数据库连接

精通SQL数据库连接 要高效地处理查询和数据库设计,你必须对SQL连接声明有较好的了解。在基本的逻辑句法之外,还有一些关于连接和简便数据参考方面的概念,例如别名,自连接和ON子句。 别名不只是做连接 别名是一个SQL功能,他允许你在一个查询中为表格或专栏创建一个速记符号,他在处理自连接时也可以很便利地使用,这一点我会在后面提到。 一个别名通用的格式是table_name.column_name AS alias,他允许你通过指派的处理器来参照已别名化的项目。在非常复杂的JOIN声明中,别名使得阅读和录入变得很容易。 下面这个例子是典型的别名使用: SELECT Cpany_name AS coname, Ind.industry_name AS indname FROM Company AS Co LEFT JOIN Industry AS Ind ON Co.industry_id = Ind.industry_id WHERE coname LIKE ‘%Tech%’ AND indname = ‘Computing’; 注意AS关键字是任选的,然而我建议使用他从而更加清楚。而且,专栏可以使用格式alias = table_name.column_name来别名化,但表格不能这样来别名化。 自连接只使用一个表格 自连接是一种在单一标准化表格上使用的JOIN声明,实质上,你可以使用自连接在一个表格内获得行与行之间的等级关系。你必须使用别名作为表格的两个实例来描述表格,然后将其连接起来。 使用自连接的实例可以体现在列有所有雇员和经理的员工表格中,自连接允许你与单一查询建立联合,否则你就不得不在代码中处理一个循环。 使用自连接的另一个实例是在包含工作任务的表格中追踪一个开发项目,在其他信息中,表格里包括一个TaskID专栏,他的每一行都有一个唯一的数字;一个DependenceID专栏,其中包括在现有任务可以开始之前必须完成的任务的ID。 得到任务和其附属的列表,你可以使用如下连接: SELECT Current.task_descr AS Task, Previous.task_descr AS Dependence FROM Project AS Current LEFT JOIN Project AS Previous ON Current.DependenceID = Previous.TaskID; 这个声明会在两个专栏中得到结果,标注为Task和Dependence且每一行里都具有相关信息。通过使用自连接,你可以使用来自单一表格的数据来创建一个内建载数据自身内部的等级的参照描述。 USING和ON子句可以在多个专栏做连接 除了ON子句,你还可以使用USING子句来实现一个等连接,他与连接表格中从一个表格到一个专栏的值相等。你也可以使用这两个声明来连接多个专栏,这在你构筑JOIN声明时会很方便使用。 在ON子句中你可以指定专栏名称,这意味着你可以对两个专栏名不相配的表格中的数据进行比较,要在多个专栏上实现一个搜索行为,需要用AND关键字来分隔条件(见下段的使用实例)。 在USING子句中,专栏名必须一致,并必须在要连接的两个表格中都要存在。如果你使用多个专栏做连接,用逗号分隔专栏名。下面是USING子句句法的基本实例: SELECT * FROM User INNER JOIN Event USING (userid);   控制JOIN的顺序 JOIN声明中并不要求做插入,但你可以在涉及多于两个表格时使用插入来改变JOIN声明的顺序。通常地,JOIN声明或者从左至右处理(以在查询中出现顺序为序),或者由数据库查询优化器在执行前决定。 一些数据库,如SQL Server, Oracle和DB2也支持JOIN HINT关键字的概念。这些关键字被插入到JOIN声明中来控制JOIN被处理的顺序。例如,一个MERGE JOIN会在处理其他连接之前将两个表格连接在一起。HASH JOIN会将一个表格和一个已经被执行的JOIN声明的结果连接在一起。JOIN HINT会导致数据库性能的极端低下并应留给DBA处理。 你的另一个选择是使用插入来控制JOIN的执行顺序,下面是使用实例,其中Catalog, Product和Color是表格: SELECT Catalog.item, Catalog.item_color, Product.item, Color.color_name FROM Catalog FULL OUTER JOIN ( Product CROSS JOIN Color ) ON Catalog.item = Product.item AND Catalog.item_color = Color.color_n

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档