1.MySQL的引擎
1.1MySQL引擎简介
MySQL有多种引擎,能执行create table、select等命令,在数据量不多时,使用任何引擎都没什么关系。但是,在大数据开发期间,要处理海量数据,就需要来了解MySQL的多种引擎了。
1.1.1MySQL的引擎作用
(1)当你使用create table语句时,该引擎用于创建表;
(2)当在你使用select语句或进行其他数据操作时,该引擎在内部处理各种命令请求;
(3)在多数时候,数据库引擎都隐藏在MySQL软件内,开发者不需要过多地关注它,但通常SQL内部数据出现问题时, 就是引擎导致的。
1.1.2在MySQL中,有3类引擎
(1)InnoDB是一个可靠的事务处理引擎,但是它不支持全文搜索; [逻辑单元]
(2)MyISAM是一个性能极高的引擎,它支持全文搜索,但不支持[事务]处理;
(3)Memory在功能等同于MyISAM,但由于数据存储在内存中,速度很快,但占用内存大,因此几乎不使用此引擎。
常用的两者区别如下图所示;
2.设定MySQL引擎
设定引擎的语法
create table 表名(
字段名 数据类型(长度) [约束],
...
) engine = 引擎名 default charset utf8;
注:引擎的单词是engine。
3.清空数据的区别
清空数据有两种不同的方式: 两种方式都可以用于清空数据内容。
# 删除数据表数据
delete from 表名;
# 销毁及删除数据表数据
truncate [table] 表名;
两者的区别在于:
(1)delete删除数据时,是一条一条的删除数据记录,效率低;
(2)truncate删除数据时,是将整个表销毁,然后再创建一张一模一样的表,并且用auto_increment修饰的字段将重置为0重新开始计算。
4.SQL约束
4.1SQL约束简介
创建数据表语法:
create table 表名(
字段名1 数据类型(长度) [约束],
字段名2 数据类型(长度) [约束],
字段名3 数据类型(长度) [约束],
...
) engine = 引擎名 default charset utf8;
字段名的结尾处可以添加SQL约束。SQL约束是用于指定字段数据的规则,可以保证数据更加精确、可靠。通俗地说,SQL约束就是数据在类型的基础上【增加了额外要求】。
(1)SQL约束不是必须的,而是为了让SQL更加规范而存在;
(2)在学习SQL过程中,为了便于初学者更好的理解SQL约束,会单独讲解SQL约束;
(3)在实际应用中,可以对字段同时设定多个SQL约束,且都是在创建数据表时进行设定。
4.2 主键约束
添加主键约束语法:
create table 表名(
字段名 数据类型(长度) primary key 或[其他约束],
...
) engine = 引擎名 default charset utf8;
# 创建表后,使用alter table关键字添加主键
alter table 表名 add primary key(字段名);
4.3删除主键约束
当不需要主键约束时,则可以删除。删除主键约束,语法如下:
# 使用alter table关键字删除主键
alter table 表名 drop primary key;
4.4自动增长
让主键约束字段为自动增长[auto],语法:
create table 表名(
字段名 数据类型(长度) primary key auto_increment,
...
) engine = 引擎名 default charset utf8;
4.5默认值约束
当在创建表时给某字段添加默认值约束,语法:
create table 表名(
字段名 数据类型(长度) [其他约束] default 值,
...
) engine = 引擎名 default charset utf8;
注意;
(1)有了默认值约束后, 当不传递字段对应的值时,会使用默认值;
(2)有了默认值约束后, 当传递字段对应的值时,会传递的具体值为准。
对于其他约束,可以看上面的表进行了解,并不常用。