一、MySQL常用存储引擎及数据类型
1.InnoDB存储引擎特点:
1)给MySQL数据库提供事物,包括回滚,包括修复能力,多版本并发控制事物安全。2)支持外界元素。
3)创建表结构是存储在“.fim”文件中,数据和索引,数据分别存储在innodb表空间中。
4)缺点是读写读取效率比较低,占用的空间也比较大。
2.MyISAM存储引擎特点:
(1)创建表时会存储为3个文件,文件的名字与表名相同,分别是 “fim fid fii”,fim存储表结构,fid存储表数据,fii存储表索引分别保存在这三个文件中。
(2)Myisam的表支持三种存储格形分别是:静态型,动态型,压缩型。
(3)静态是myisam默认存储格式,字段是固定长度;动态包括变长字段,字段长度是不固定的;压缩型要选择工具dimpaik创建占用磁盘空间比较小。
(4)Myisam的优势在于磁盘空间比较小,处理速度快。
(5)缺点是不支持事物,没有事物的完整性,安全性以及事物的并发性处理。
2、枚举类型
只能插入规定的值,数值(从1开始),或者null
3、set集合
4、MySQL时间类型
5、Mysql完整性约束条件
PRIMARY KEY主键(唯一来标识的,每一个表都一个,自动非空)
AUTO_INCREMENT自增长
FOREIGN KEY外键
NOT NULL非空
UNIQUE KEY唯一
DEFAULT默认值
二、7种join
(1)select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;
(2)select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;
(3)select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;
(4)select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;
(5)select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null;
(6)select * from tbl_dept a right join tbl_emp b on a.id=b.deptId
union
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;
(7)select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null
union
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;
注:小表驱动大表