1、总结
- InnoDB 存储引擎:它是 MySQL 5.5 版本之后默认的存储引擎,最大的特点是支持事务、行级锁定、外键约束等。
- MyISAM 存储引擎:在 MySQL 5.5 版本之前是默认的存储引擎,不支持事务,也不支持外键,最大的特点是速度快,占用资源少。
- Memory 存储引擎:使用系统内存作为存储介质,以便得到更快的响应速度。不过如果 mysqld 进程崩溃,则会导致所有的数据丢失,因此我们只有当数据是临时的情况下才使用 Memory 存储引擎。
- NDB 存储引擎:也叫做 NDB Cluster 存储引擎,主要用于 MySQL Cluster 分布式集群环境,类似于 Oracle 的RAC 集群。
- Archive 存储引擎:它有很好的压缩机制,用于文件归档,在请求写入时会进行压缩,所以也经常用来做仓库。
2、命令语法
- 创建表结构:CREATE TABLE table_name
CREATE TABLE player (
player_id int(11) NOT NULL AUTO_INCREMENT,
player_name varchar(255) NOT NULL
);
- 修改表结构
1. 添加字段 ,添加一个 age 字段,类型为int(11)
ALTER TABLE player ADD (age int(11));
2. 修改字段名,将 age 字段改成player_age
ALTER TABLE player RENAME COLUMN age to player_age
3. 修改字段的数据类型,将player_age的数据类型设置为float(3,1)
ALTER TABLE player MODIFY (player_age float(3,1));
4. 删除字段, 删除刚才添加的player_age字段
ALTER TABLE player DROP COLUMN player_age;
- 数据表的常见约束
对字段进行约束约束的目的在于保证 RDBMS 里面数据的准确性和一致性
键约束
1、主键约束
主键起的作用是唯一标识一条记录,不能重复,不能为空,即 UNIQUE+NOT NULL
一个数据表的主键只能有一个。主键可以是一个字段,也可以由多个字段复合组成
2、外键约束
外键确保了表与表之间引用的完整性。一个表中的外键对应另一张表的主键。
外键可以是重复的,也可以为空。
字段约束
1、唯一性约束
唯一性约束表明了字段在表中的数值是唯一的,即使我们已经有了主键,还可以对其他字段进行唯一性约束。
唯一性约束相当于创建了一个约束和普通索引,目的是保证字段的正确性,而普通索引只是提升数据检索的速度,并不对字段的唯一性进行约束
2、NOT NULL 约束
对字段定义了 NOT NULL,即表明该字段不应为空,必须有取值。
3、DEFAULT
表明了字段的默认值。如果在插入数据的时候,这个字段没有取值,就设置为默认值
4、CHECK 约束
用来检查特定字段取值范围的有效性,CHECK 约束的结果不能为 FALSE
CHECK(height>=0 AND height<3)