数据库的存储引擎
存储引擎:决定如何将数据通过特定的存储机制 索引技术和锁定水平将数据文件存储到物理硬件的基石
是数据库存储数据的底层逻辑,解决如何存储数据的问题
存储引荐分类
innoDB 5.5版本之后的默认存储引擎
支持事物 行级锁 和外键约束 具有崩溃恢复能力
myISAM 5.5版本之前的默认存储引擎
不支持事物和外键约束 表级锁 高并发写入表现不佳
优点是大量数据读写速度快效率高
Memory 内存引擎 将数据存储在内容 提供高度读写性能
NDB Ciuster 簇式数据引擎 转为高性能查询和高可用设计的 分布式存储引擎
CSV 文本文件引擎 存储CSV格式文件 不支持事物和外键约束
数据库简单命令
Show databses
Use 数据库名字
Show tables
Show engines ; // 查看数据库支持的所有存储引擎
Show crete table 表名 //查看指定表的存储引擎
alter table 表名 engine=MyLSAM ;//修改指定表的存储引擎
Desc 表名 //查看指定的表结构
表结构
字段名 类型 约束条件 索引类型 额外信息
字段名 指定存放的具体数据
类型 制动存放的数据类型
约定条件 用于约束数据 保证数据的唯一性和完整性
索引 用特定的方式单独存放的一列或几列 用于加快表数据的查寻
数据类型:
数值型
整数型:tinyint smallint int bigint
浮点型:float double devimal
字符串:char(10) varchar(10) text enum(“男”,“女”)枚举
日期型:time date datetime'
二进制:bit varbinary blob longbiob
表的约束条件 对记录到表中字段数据的一种限制条件
约束条件分类
主键约束 唯一和非空
非空约束 数据不能为空
唯一约束 数据只能一份 独立性和唯一性
自定义约束 用户自定义的约束 check age>18
外键约束 foreign key 多表之间建立的约束条件 保证表的数据完整性
索引:
类似于书籍的目录,就是一张表的目录
是数据库中用于加快数据检索的数据结构
具体原理
通过建立特定的值于其所在的行位置与映射关系 快速定位数据而不用扫描整张表
索引分类
普通索引 :normal 任何字段都可以做索引 没有限制条件
唯一索引 : nuique 字段不能重复 但可与为空
主键索引:primary 字段不能重复也不能为空
组合索引:多个列子合起来创建的索引
前缀索引:对字符类型字段的前几个字符建立的索引
优点:大幅提高查询速度 加速表连接
缺点:占用额外的储存空间 降低 插入 更新删除操作的速度
存储引擎 基本命令 表结构
数据类型 约束条件 索引
更改索引相关命令
Cerate index 索引名 on 表名(字段名) //创建普通索引
Create unique index 索引名 on 表名(字段名) //创建唯一索引
Alert table 表名 add primary key(字段名) //创建主键索引
Crete index 索引名 on 表名(字段名1,字段名2) //创建联合索引
Alter table 表名 rename index 旧名 to 新名 //修改索引
Drop index 索引名 on 表名 //删除指定索引
数据库和表的导入和导出
MySQLdump -u 用户名 -p 数据库名 表名 > 文件名.Sql //导出到指定表
Mysqldump -u root -p --databases 数据库名> xxx.sql //导出整个数据库
MySQL -u root -p 数据库名 < 文件名.Sql //将表导入到指定数据库
MySQL -u root -p < xxx.sql //直接导入数据库