数据库Ⅱ——数据表创建
文章目录
一、MySQL存储引擎
1.什么是存储引擎?
存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎
2.如何查看MySQL的存储引擎?
查看MySQL支持的存储引擎: SHOW ENGINES
查看显示支持的存储引擎信息:
SHOW VARIABLES LIKE ‘have%’
查看默认的存储引擎:
SHOW VARIABLES LIKE ‘storage_ engine’
3.MySQL常用存储引擎及特点
(1)InnoDB
①优缺点:
优势在于提供了良好的事务管理、奔溃修复能力和并发控制。
缺点是读写效率稍差,占用的数据空间相对比较大。
②适用场合:
更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。
事务:InnoDB存储引擎是唯一支持事务的标准MySQL存储引擎,这是管理敏感数据(如金融信息和用户注册信息)的必须软件
自动灾难恢复:与其他存储引擎不一样,InnoDB表能够自动从灾难中恢复。虽然MyISAM表也能在灾难后修复,但其过程要长的多
(2)MyISAM
①优缺点:
MyISAM存储引擎的优势在于占用空间小,处理速度快,缺点是不支持事务和并发性。
(3)Memory
①MEMORY存储引擎的优缺点:
MEMORY表的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。其中,max_rows可以在创建表时指定:max_heap_table_size的大小默认为16MB,可以按需要进行扩大。因其存在内存中的特性,这类表的处理速度非常快。但是其数据容易丢失,生命周期短。(注意:mysqld守护进程奔溃时,所有的MEMORY数据都会丢失)
MEMORY表不支持VARCHAR、BLOB、TEXT数据类型,因为这种表类型按固定长度的记录格式存储。此外,如果使用版本4.1.0之前的MySQL,这不支持自动增长列。
②适用场景:
暂时:目标数据只是临时需要,在其生命周期中必须立即可用。
相对无关:存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生实质的负面影响,而且不会对数据完整性有长期影响。
二、数据表创建
1.什么是表?
- 数据表是数据库最重要的组成部分之一,是其它对象的基础
- 数据表是存储数据的数据结构
- 数据表是包含了特定实体类型的数据
- 数据表由行(row)和列(column)构成的二维网络
- 数据表一定先有表结构,再有数据
- 数据表至少有一列,可以没有行或者多行
- 数据表名称要求唯一,而且不要包含特殊字符
2.如何创建数据表?
(1)代码实现
CREATE TABLE [IF NOT EXISTS] tbl name( 字段名称字段类型[完整性约束条件]…)ENGINE=引擎名称CHARSET=编码方式;
(2)完整性约束条件
PRIMARY KEY 主键
AUTO_INCREMENT 自增长
FOREIGN KEY 外键
NOT NULL 非空
UNIQUE KEY 唯一
DEFAULT 默认值
(3)试验:
提示:
- 注释:#或–
- 需要输入中文时,需要临时转换客户端的编码方式:
SET NAMES GBK;
- 通过COMMENT给字段添加注释
测试:
mysql> CREATE TABLE IF NOT EXISTS `user`(
-> id SMALLINT,
-> username VARCHAR(20),
-> age TINYINT,
-> sex ENUM('男','女','保密'),
-> emali VARCHAR(50)
-> )ENGINE=INNODB
-> ;
Query OK, 0 rows affected (0.03 sec)
mysql> SHOW TABLES
-> ;
+----------------+
| Tables_in_test |
+----------------+
| user |
+----------------+
1 row in set (0.00 sec)