1、NULL和' ' 的区别 || MySQL中为什么不用NULL作为默认值
聚合函数,比如SUM、AVG等会忽略NULL,会造成数据的一个分析误差。只能通过COUNT(*)
NULL的话只能通过ISNULL和ISNotNULL去进行判断,而' ' 可以用<,>,=等等,更加灵活。
' '长度为0,不占用空间,而NULL占用空间。
2、MySQl中Boolean用什么类型表示?
MySQL中没有Boolean,而是用Tinyint(1)去接收。TINYINT(1) 类型可以存储 0 或 1,分别对应 false 或 true。
3、左连接、右连接、内连接、全连接、交叉连接。
内连接就是等值连接【最常用的】。
交叉连接就是笛卡尔级,表a cross join 表b
左右连接语法 表a left / right join 表b ON 条件
左表score表写在left join前面是主表,因此左表的数据记录全部会出现在结果集中,而右表student中的记录如果在主表中没找到匹配,就不会出现在结果集中,上面的s_id=8的记录就没有出现在最终结果中。
这里的重点是是用什么连接,需要考虑好哪个是主表,哪个是从表。假如还是使用左连接,但是表的顺序互相换一下,结果就会完全不同。