范式
预备知识
1.码
(1)什么是码?
能唯一识别一行数据的就是码。
比如,你的身份证号,就是一个码;你的姓名不是码,因为世界上可能还有其他人叫这个名字,但是你的姓名加上你父亲和爷爷的姓名就基本上可以构成一个码。
(2)什么是候选码?
(3)什么是主码
2.函数依赖关系
(1)完全依赖
(2)部分依赖
(3)传递依赖
引擎
1.查看存储引擎:
show engines
;
2.种类
MySQL给用户提供了许多不同的存储引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。Support列的值表示某种引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示该引擎为当前默认的存储引擎。
使用下面sql可以查看默认使用的引擎:
show variables like ‘storage_engine’
;
几种常见的存储引擎:
-
InnoDB存储引擎:
InnoDB是事务型数据库的首选引擎,
1.支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。
2.支持事务处理,支持外键,支持崩溃修复能力和并发控制。
3.如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。 -
MyISAM存储引擎:
MyISAM拥有较高的插入、查询速度,但不支持事务,不支持外键。
1 MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。
2 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。 -
MERGE存储引擎:
Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的。
3.关于存储引擎的一些命令:
- 查看表的存储引擎:
Show create table table_name;
或者
show table status from db_name where name=‘table_name’
; - 修改表的存储引擎sql:
Alter table table_name type=InnoDB
;
或者
alter table student engine=MyISAM
; - 创建表时指定存储引擎:
create table test1(id int) engine= MyISAM
或者
vi /etc/my.cnf
[mysqld]
default-storage-engine=INNODB
- 或者使用命令修改:
set default_storage_engine=MyISAM