sql学习笔记(二)

在 SQL 中,'using' 和 'on' 是用于连接(join)操作的关键字,它们都用于指定连接条件,但它们在语法和使用场景上有一些区别。以下是它们的详细对比:

一. on关键字

定义

'on'是最常用的连接条件关键字,用于显示指定连接的字段。

语法

select * 
from table1
join table2
on table1.column = table2.column;

特点

  • 'on'后面直接指定连接条件,可以明确地写出两个表的字段名。
  • 支持复杂的连接条件,可以包含多个字段的比较、逻辑运算符(如'and','or')等。
  • 适用于所有类型的连接('inner  join'、'left  join'、'right  join'、'full  join')。
  • 可以连接不同表中的同名字段或不同名字段。

示例

select orders.order_id, customers.customer_name
  from orders
  join customers
  on orders.customer_id = customers.customer_id;

二. using关键字

定义

'using'是一种简化的连接条件关键字,用于连接两个表中国同名的字段。

语法

select *
  from table1
  join table2
  using (column);

特点

  • 'using'后面只能指定一个字段,且该字段必须在两个表中具有相同的名称。
  • 语法更简洁,但限制较多。
  • 只能用于连接同名字段,不能用于连接不同名字段。
  • 在查询结果中,该字段只会显示一次。
  • 同样适用于所有类型的连接('inner  join'、'left  join'、'right  join'、'full  join')。

示例

select order_id, customer_name
  from orders
  join customers
  using (customer_id);

三. 区别

特性onusing
适用场景适用于连接任意字段(无论字段是否同名)只适用于连接同名字段
语法复杂度更灵活,可以指定复杂条件更简洁,但限制较多
查询结果如果连接字段在两个表中同名,结果中会显示两次连接字段在结果中只显示一次
字段引用需要显示指定表名和字段名可以省略表名,直接引用字段名
复杂性支持多字段连接和复杂逻辑只支持单字段连接,且字段必须同名

四. 总结

  • 如果你需要连接两个表中同名的字段,并且希望结果中只显示一次该字段,使用'using'更简洁。
  • 如果你需要连接不同名的字段,或者需要更复杂的连接条件,使用'on'。
  • 'on'是更通用的选择,而'using'是一种简化的语法,适用于特定场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋转小马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值