一:数据库春初引擎是 ------数据库底层软件组件,数据库管理工具(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,mysql的核心就是存储引擎。
二:Mysql提供了多个不同的存储引擎,包括事务安全表的引擎和处理非事务安全表的引擎,通常针对具体的要求,可以对每一个表使用不同的存储引擎
三:mysql5.7支持的存储引擎有:
InnoDB, MyISAM,,Memory,Merge,Archive,Federated,CSV,BLACKHOLD
使用show engins语句查看系统所支持的引擎类型
InnoDB存储引擎:事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,mysql5.5.5之后,InnoDB作为默认存储引擎
MyISAM存储引擎:MyISAM基于ISAM的存储引擎,并对其进行扩展,它是在web、数据存储和其他应用环境下最常用的存储引擎之一
MEMORY存储引擎:将表中的数据存储到内存中,为查询和引用其他数据提供快速访问
Archive存储引擎:支持高并发的插入操作,但是本身并不是事务安全的,非常适合存储归档数据,如鸡肋日志信息等
四: 主键与外键
主键:主键又称主码,是表中一列或多累的组合,主键约束(Primary key Constraint)要求主键列的数据为宜,并且不允许为空,主键能够唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,加快数据库查询的速度。
主键分为两种:单字段主键和多字段联合主键
外键:外键用来在两个表的数据之间建立链接,它可以是一列或者多列,一个表可以有一个或多个外键,外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键:首先外键是表中的一个字段,可以不是本表的主键,但对应另外一个表的主键,外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行,外键的作用是保持数据的一致性,完整性。
主表(父表)/从表(子表):对于两个具有关联关系的表而言,相关联字段中主键所在的表即为主表,相关联字段中外建所在的表即是从表
创建外键的语法规则
[Constraint <外键名> ] foreign key 字段名1 [,字段名2,。。。]
References <主表名> 主键列1 [,主键列2,。。。]
唯一性约束:唯一性约束(Unique Constaint)要求该列唯一,允许为空,但是只能出现一个空值,唯一约束可以确保一列或者几列不出现重复值
语法规则:字段名 数据类型 UNIQUE
Contraint STH UNIQUE(name)
使用默认约束:(Default Contraint)制定某列的默认值,当如果插入一行新的记录没有为这个字段赋值,那么系统会自动为这个字段赋值(赋默认值)
语法规则:字段名 数据类型 Default 默认值
设置表的属性值自动增加:在插入新纪录的时候,系统自动生成字段的主键值,一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分
语法规则:字段名 数据类型 AUTO_INCREMENT
五:查看数据表结构(describe,showcreate table语句)
1.查看表基本结构语句 . describe + 表名 / 简写为 desc +表名
2.查看表详细结构:show create table
3.修改数据表 :Alter table
Aiter table 表名1 RENAME 表名2 :将数据表1名称更改为数据表2
Alter table <表名> Modify <字段名> <数据类型>
Alter Table <表名> change <旧字段名> <新字段名> <新数据类型>
Alter table <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | after 已存在字段名] >>>(添加一个新字段到指定的字段位置)
Alter table <表名> drop <字段名> 删除表中的一个字段
Alter table <表名> modify <字段1> <数据类型> first|after <字段2>;
Alter table <表名> engine=<更改后的存储引擎名>;修改表的引擎为新的引擎
Alter table <表名> drop foreign key <外键约束名>
六:删除数据表
1.删除没有被关联的表:drop table if exists table1,table2,table3.........
2.删除被其他表关联的主表:删除主表前,需要将关联的表的外键约束条件取消后,才能删除主表
语法:alter table <从表> drop forgin key <外键约束名称>