union
sql1 union sql2;
如果两个结果集列名字不一样依旧可以进行合并,列名以第一个结果集为准。
如果两个结果集列的数量不同,union不能使用。
计算列的类型不一样,union依旧可以合并,只要列的数量一致就行。
union后的结果集可以进行排序。
如果union后的结果有重复,此时默认会去重,若不想去重,用union all。
参考答案:
select id,sum(num) from(
select * from a
union all
select *from b
) as tmp
group by id;
连接
参考答案:
select t1.tname as hname ,mres,t2.tname as gname,matime
from
m left join t as t1
on m.hid = t1.tid
left join t as t2
on m.gid =t2.tid
where matime between ‘2006-06-01’ and ‘2006-07-01’;
存储引擎
engine:mysql存储数据的不同方式
事务
start transaction;操作;commit;/rollback;
原子性:2步或N步操作,逻辑上不可分割,要么都成功,要么都不成功
一致性:是指操作前后值的变化,逻辑上成立
隔离性:事务结束前每一步的操作带来的影响别的会话看不见
持久性:事务一旦完成,无法撤销。
myisam不支持事务安全,而innodbb支持。
为什么建表用not null default’’?
因为null是一种类型,比较时只能用is null和is not null,其他运算符一律返回null。且效率不高,容易影响索引搜索效率。