All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
利用XMLHTTP从其他页面获取网页数据_JavaScript技术_编程技术
PHPer:让我们拥抱敏捷吧_php资料_编程技术
PHP has encountered an Access Violation解决方法总结_[PHP教程]
C#中实现随机时间的获取_.net资料_编程技术
ASP.NET超时设置_[Asp.Net教程]
ASP.NET实例:增强,GridView,控件的功能(二)_[Asp.Net教程]
ASP.NET加密算法(MD5、DES)_[Asp.Net教程]
在asp.net,页面中加入skype功能_.net资料_编程技术
Delphi执行sql server普通查询
Silverlight,2(beta1)数据操作(7)—调用FlickR,REST,APIs来询图片_[Asp.Net教程]
Reading number is top 10 pictures
Beauty ZhiHuiLin2
Beautiful Japanese beauty(漂亮的日本美女)2
Chinese paper-cut grilles art appreciation4
Sora aoi possession of boudoir1
一个武林高手的故事
恶搞漫画2
9.3阅兵全景图8-航空梯队
Seductive beauty of crime1
汪峰的梦想
Absolutely shocked. National geographic 50 animal photographys8
Download software ranking
Sora aoi 120 minutes
天龙八部最新服务端
Unix video tutorial4
jdk1.5
Tram sex maniac 2 (H) rar bag1
致我们终将逝去的青春
双旗镇刀客A
Sora aoi - one of more PK
I'm come from Beijing2
Boxer Classic video2
归海一刀 published in(发表于) 2014/2/1 0:15:54 Edit(编辑)
SQL循序渐进(17)JOIN子句_[SQL,Server教程]

SQL循序渐进(17)JOIN子句_[SQL,Server教程]

SQL循序渐进(17)JOIN子句_[SQL Server教程]

JOIN子句

  不知你有没有发现直到现在我们利用SELECT语句来检索的时候只能从一个表中进行。如果你想从两个表或者更多的表中进行检索,该怎么办呢?好在我们可以使用SQL和关系数据库系统的一个很有用的特性,即"Join"。为了简单说明,实际上"Join"就是使得关系数据库系统相关的东东。"Join"允许你从两个表或者更多的表连接数据进行数据检索,而只需要利用一个SELECT语句。如果在FROM关键字之后有多个表的话,"Join"可以在SQL SELECT语句中识别它们。

下面举个例子:

SELECT "list-of-columns"

FROM table1,table2

WHERE "search-condition(s)"

"Join"

通过示范当你只处理一个表的时候会发生什么事情可以使得"Join"的解释更简单,所以这里我没有使用"Join"。这个单一的数据库有事也被称为"flat table"(平表)。现在你有一个表的数据库用来检索所有顾客的信息以及他们从你的商店买了什么,下面就是这个表的所有列:



  每次一个新行被插入到表中,所有的列都将被更新,这样就导致了不必要的”多余数据”。比如,每次Jenny买东西,下面的行都将被插入到表中:



  为了避免”多余数据”,一个最好的方法:让数据库有两个表: 其中一个用来对顾客保持跟踪;另外一个用来对他们买什么东西保持跟踪。 即有"Customer_info" 表和"Purchases" 表:

  "Customer_info" 表为:




customer_number




firstname




lastname




address




city




state




zip



  "Purchases" 表为:




customer_number




date




item




price




  现在开始,不管顾客什么时候进行重复的购物,只有第二个表"Purchases" 需要更新。这样我们就减少了多余的数据,也就是说我们规格化了这个数据库。

  你仔细点就会发现两个表中还是有一个"cusomer_number"列是相同的。这个列包含了单独的顾客号,它将用来JOIN(连接)两个表。下面举个例子来使用这两个表,假如你想搜索顾客的名字以及他们所买的东西,你可以使用以下的语句来实现:

SELECT customer_info.firstname, customer_info.lastname, purchases.item

FROM customer_info, purchases

WHERE customer_info.customer_number = purchases.customer_number;

  特殊的"Join"有为"Inner Join" 或者"Equijoin",这是一个最常见的"Join"类型,以后我们经常用使用到或者看到。

  这里要注意每列总是在表名之前,这却也不是必需的。这是一个好的练习对于帮助你澄清列后面跟着表的认识有很大帮助。如果两个表之间有一个相同的列,它就是必须的。我这里推荐在使用JOIN的时候最好在所有列之后加上表名。

  注意;上面描述的这个语法将在绝大多数的数据库系统起作用,本教程的也是一样。但是结果你会发现你上面的语句并不起作用,请仔细检查一下吧。

  当然你可以试一试修改以上的代码,你可以使用JOIN(ANSI SQL-92语法规范中的INNER JOIN):

SELECT customer_info.firstname, customer_info.lastname, purchases.item

FROM customer_info INNER JOIN purchases

ON customer_info.customer_number = purchases.customer_number;

  再举另外一个例子:

SELECT employee_info.employeeid, employee_info.lastname, employee_sales.comission

FROM employee_info, employee_sales

WHERE employee_info.employeeid = employee_sales.employeeid;

  这个例子将从employee_info和employee_sales表中选择当employee_info表的employeeid等于employee_sales表的employeeid的employeeid 、emplyee_info表中lastname以及employee_sales表中的comission数值。

  从上面的例子中可以发现利用JION的语句比价简练。既然有这样的有点,我们何乐而不为呢?







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.