GBase 8a数据库内连接查询

本文介绍了GBase 8a数据库中的内连接查询,包括内连接的两种语法格式,等值连接和非等值连接的概念,并通过一个实际例子展示了如何使用INNER JOIN和WHERE子句进行内连接查询,以查询顾客的联系方式和订货日期。

将两个表连接在一起的条件称为连接谓词(Join Predicate)或连接条件。内连接只返回两个表中与连接谓词匹配的行,不匹配的行不会被输出。

内连接的语法格式有两种,分别为:

SELECT <列名>,…

FROM 左表,右表

WHERE <左表>.<主键> <比较运算符> <右表>.<外键>

SELECT <列名>, …

FROM <左表> JOIN <右表>

ON <左表>.<主键> <比较运算符> <右表>.<外键>

当连接运算符为“=”时,被称为等值连接,使用其他运算符时,被称为非等值连接。INNER JOIN 关键字表示进行内连接,关键字左侧的表被称为左表,右侧的表被称为右表。ON 关键字后面是连接谓词。

等值连接是最常用的一种连接查询类型,在通常情况下,等值连接的谓词是一个表的主键等于另一个表的外键。正是通过数据库中定义的主外键关系,表与表才能有机地连接在一起。

例 1.13 查询每位顾客的联系方式及其订货日期。

顾客信息存放在 customer 表中,订单日期存放在 orders 表中,本查询需要涉及两个表。两个表之间的联系是通过 customer 表的主键 customer_num 和 orders 表的外键 customer_num实现的。

select customer.customer_num, cname, phone, order_num, order_ date

from customer join orders

on customer.customer_num=orders.customer_num;

查询结果为:

customer_num cname phone order_num order_date

101 张— 138-8789-8075

1001 05/20/2008

101 张— 138-8789-8075

1002 05/21/2008

104 杰克 415-743-3611

1003 05/22/2008

102 李凤 130-5822-1289 1004 06/07/2008

104 杰克 415-743-3611

1005 06/22/2008

内连接的连接谓词也可以在 WHERE 子句中指定。这种语法形式不使用 SQL-92 标准引入的 JOIN 关键字,因此被称为旧式内连接。与例 1.13 查询等价的旧式内连接为:

select customer.customer_num, cname, phone, order_num, order_ date

from customer ,orders

where customer.customer_num=orders.customer_num;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值