datetime和timestamp的区别:
1、datetime占用8字节,timestamp占4个。因此,timestamp比datetime的空间利用率更高。
2、datetime默认为空,timestamp默认为当前时间。当使用update语句对时间没有处理时,timestamp会自动更新为当前时间
3、在进行增删改操作时,数据库对datetime是不做处理的,但是timestamp输入数据会转变为当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
4、两者所能存储的时间范围不一样 。
datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;
聚合函数:
null值不参与集合函数运算
count聚合函数可用于统计符合条件的总记录数 select count(1) from emp;
where和having区别:
判断时机:where比having优先级更高 where先进行条件判断再group by分组,having是分组后再进行筛选;
判断条件:where不能对聚合函数判断,having可以 。
例:查询年龄小于45的员工 , 并根据工作地址分组 , 获取员工数量大于等于3的工作地址
select workaddress, count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;
显示内连接和隐式内连接的区别:
相对而言,隐式连接好理解好书写,语法简单,担心的点较少。但是显式连接可以减少字段的扫描,有更快的执行速度。这种速度优势在3张或更多表连接时比较明显
union联合查询
union 联合查询,会对查询出来的结果进行去重处理。union all不会去重 相当于or