首页  登陆  注册  博客集  下载频道  网络硬盘  学院论坛  家园
IT学院 网站地图 网站地图
收藏本站 收藏本站
高级搜索 高级搜索
 新闻IT新闻 互联网 微软 黑客新闻 网络网络协议 故障 网络管理 TCP/IP 无线技术 解决方案 黑客技术 漏洞 软件评测 安全资讯
 数据MSsql Oracle Mysql PL/SQL 备份 系统:Linux vista Windows FTP 防火墙 注册表 服务器行情 服务器应用 解决方案 WEB服务器
 墙纸风景壁纸 游戏壁纸 体育壁纸 汽车壁纸 人文壁纸 影视壁纸 广告壁纸 花卉壁纸 节日壁纸 动漫壁纸 明星壁纸 绘画壁纸 月历壁纸
当前位置: > 主页>数据库技术>MSsql >精通SQL数据库连接
热门文章排行
 
热门文章排行 巧用触发器对"SQL Serve
SQL Server 2000问答
  问:SQL Server 200
ADO数据访问一点通
SQL Server成为低成本建
SQL Server数据库六种数
SQL Server性能分析参
将ACCESS的转化为SQL SE
拷贝的SQL Server 7数据
优化SQL Server服务器内
精采文章推荐
 
精采文章推荐 SQL Server存储过程入门
SQL的基本操作(1.数据类
SQLMail的原理及实际应
维护SQL Server数据库
简单查询和联合查询两方
怎样用SQL 2000 生成XML
SQL Server 2000的安全
SQL配合3389的一次入侵
SQL SERVER 2000 SP2 12
SQL SERVER 2000通讯管
最新更新文章
 
最新更新文章 SQL Server存储过程入门
用ASP调用SQL的视图和存
SQL的基本操作(4.数据的
SQL的基本操作(3.表的相
SQL的基本操作(2.数据库
SQL的基本操作(1.数据类
SQLMail的原理及实际应
维护SQL Server数据库
配置SQL Server 2000选
Jboss下MS SQL Server配

精通SQL数据库连接

编辑:   来源:  日期:2008-02-14   我要投稿      家园

  要高效地处理查询和数据库设计,你必须对SQL连接声明有较好的了解。在基本的逻辑句法之外,还有一些关于连接和简便数据参考方面的概念,例如别名,自连接和ON子句。
  
  别名不只是做连接
  
  别名是一个SQL功能,他允许你在一个查询中为表格或专栏创建一个速记符号,他在处理自连接时也可以很便利地使用,这一点我会在后面提到。
  
  一个别名通用的格式是table_name.column_name AS alias,他允许你通过指派的处理器来参照已别名化的项目。在非常复杂的JOIN声明中,别名使得阅读和录入变得很容易。
  
  下面这个例子是典型的别名使用:
  
  SELECT Co.company_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_name;
  
  
  成为数据库专家
  JOIN声明可以有效地找到你所需要的信息并避免带来麻烦。通过使用上面提到的概念,你可以逐渐掌握JOIN声明和数据库的使用。总的来说,别名,自连接和JOIN声明的使用会帮助你成为标准化数据库的专家。


上一篇:SQL7中LOCK的理解(2)  
下一篇:跟我学SQL:查询多个表格
 关键字:  
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:

   文章评论:(0条)
  
 请留名: 匿名评论   点击查看所有评论
 

  责任编辑:IT学院  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。