为了了解实际的连接操作,现在让我们假设在一个数据库内存放了某类软件的相关记录。某个表(software)包含了软件产品的名称、软件的版本以及其他有关细节:[image004.gif]
另一个表(releases)则存储了软件发布历史的信息,其中包括发布日期和发布状态等(比如测试版、当前版、过时等):[image005.gif]
上表中还包含了一个列,内容指向软件表中采用的id号。所以,通过这种索引软件表的方式,你就知道发布表中software_id 等于 2的软件是rome。
你采用连接组合信息,这样就不需要在两个表之间来回折腾了。不过,除了组合信息之外还可以通过连接把有关信息合并。这样,只要发布表内的software_id 匹配软件表内的id,你就把匹配信息一起放到一个记录内。
代码如下:
sql = "select * from software, releases where software.id = releases.softwareid"
仔细分析以上的语句,首先注意到两个表名列在了from的后面。再根据所采用的连接,今后你可能还会发现语法会有所变化(或者连接类型有变),但是以上的语法是最基本的,显示了数据的联合选择方式。这里的where 子句用来比较特定的id值。在software 表内,存在id 列。同样的,releases 表内则有个software_id 列。为了明确你在where 子句里要比较的值,你用表名作为前缀,后面还加上了一个点号(.)。
以下是连接选取数据之后的结果:[image006.gif]
注意:在创建连接的时候要仔细考虑选出数据的列。以上代码采用 * 通配符是为了让读者关注于select 代码行的其他部分。但是,正如你从上图看到的那样,你无法选出softwareid 列,因为这一列没有作为recordset部分的增加值。它的作用就是为where 子句所用。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


