MySql语句总结

MySql关键字的一般组成顺序如下:

(7)SELECT (8)DISTINCT  <select_list>
(1)FROM [left_table]
(3)<join_type> JOIN [right_table]
(2)[ON|USING] <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)HAVING <having_condition>
(9)ORDER BY <order_by_list>
(10)LIMIT <start_line,total_line>

其中,小括号内的数字表示MySql的执行顺序。要知道,Sql并不是哪个关键字在前就执行哪个。基本上,SELECT总是第一个写但却是较后执行,Sql都是先执行FROM语句,每一个步骤都生成一张虚拟表作为下一个步骤的输入。

<join_type>分为三步:

第一步,是否是natural自然连接:如果加上natural,则数据库会自动连接两张表的同名字段,连接完成后同名字段合并,当然后面就不能使用ON关键字,但可以使用USING关键字,表示如果两张表中的同名字段超过一个,但只使用USING指定的字段进行连接。

第二步,左left右right全full连接:只有在连接类型为outer才能使用,见第三步。

第三步,内连接inner外连接outer:内连接是默认的,即只写一个join默认为inner join,inner根据ON指定的字段进行连接,但指定的两个字段不会像natural一样进行合并。outer连接分为三种,left、right和full,left outer指保留左边的表中所有的行即使右边的表没有匹配的连接行。

然而,SELECT虽然是最后执行,但<select_list>中定义的别名却可以在其他先执行的语句使用。

参考资料:qanholas的博文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值