mysql 完全限定表名列名_mysql必知必会 - 使用完全限定名

现实案例:比如村子中有户人家叫王a家,王a家有个孩子叫王小三,那么王a在家里叫王小三吃饭有一下情景:

a.王a说:王小三赶紧吃饭;

b.王a说:王a家的王小三赶紧吃饭(现实生活中这就是有病啊!);

这两种方式都可以达到目的,同时不会有任何误解,b方式就是使用谁家的小谁,完全限定名!有点类似什么呢?当有人问你是哪里人的时候,你可以直接说我是吉林人,也可以说我是中国吉林人。

需求场景:查询所有商品名称。

查询方式:使用a方式,王小三跟进吃饭。

SQL1:SELECT prod_name FROM Products;

54094924cc00ef64ae4cb2f1a5022e21.png

查询方式:使用b方式,王a家的王小三赶紧吃饭,虽然在自己家中这么说有点神经病的感觉。

SQL2:SELECT Products.prod_name FROM Products;

a871e8d298f646b4d96bb2f9353c7516.png

SQL1和SQL2进行对比:

1.在自家叫自己的孩子,为何不使用SQL2呢,因为它比较别扭,但是是正确的方式;

2.不同之处在于,在查询的列之前加上表名来表示这个列是属于哪个表的,这就是完全限定名。

拓展解释:

对于列的完全限定名:表名.列名

对于表的完全限定名:数据库.表名

e190ded80b9f732fb86102df17e2d695.png

我们查看SQL就可以看出完全限定名。

完全限定名使用场景:如果只在自己内部使用,那么完全限定名基本上是不用的,这种情况太简单了。那么什么时候去使用呢?比如村里有两家分别叫王a和王b,并且两家都有个孩子叫王小三,这两个王小三并且在一个班级学习上课,那么老师叫王小三,这两个孩子就不知道叫谁了。说王a家王小三,那么王a家王小三就会知道是他。所以当在单表内查询时一般不用完全限定名,只有多个表涉及到相同的列名时,才会使用到完全限定名。比如用户表有个列叫name,商品表有个字段叫name,当查询时只使用name,那么数据库是不知道叫用户的name,还是商品的name,此时完全限定名就可以体现出来。使用完全限定名的作用就是防止歧义的发生!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值