SQL学习中的一些疑问(一)

来源:互联网 发布:java api 中文版 编辑:程序博客网 时间:2024/06/18 16:35

一、JOIN的用法

  • JOIN : 默认为INNER JOIN;逗号(,)也等同于join
  • INNER JOIN : 如果表中有至少一个匹配,则返回行(交集)
  • LEFT JOIN : 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN :即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN : 只要其中一个表中存在匹配,则返回行(并集)
  • CROSS JOIN :笛卡尔积
    注:对于join,后接where和on对结果没有影响。
    join和select进行筛选对于不同的情况效率是可能不同的。
    http://blog.csdn.net/holly2008/article/details/25704471

二、all、any和some的区别

all : 对所有数据都需要满足条件,整个条件才会满足
any : 只要有一条数据满足条件,整个条件成立
some:与any等同。
注:在比较数字时,使用max/min可能效率会更高。

三、Incorrect datetime value: ” for column ‘createtime’

今天使用的是mysql 5.7,在直接使用sql插入数据事,报了上述错误,最后发现原因是,对于现版本来说,需要将时间精确到秒:格式为:
yyyy-MM-dd HH:mm:ss
通过增加时分秒后插入成功。
参考:【SSH网上商城】Incorrect datetime value: ” for column ‘pdate’ at row 1