我们开始看第20行,也就是创建表的末尾,可以为整张表定义哪些属性。
分为这四种:
1、auto_increment = 自增长字段的起始值
//自增长类型值的初值,默认是1。创建新表时不用设定这个属性。
2、default charset=编码名
为表设定编码。
字符编码设定的范围及继承关系:
系统级设定:安装时确定了。
库级设定:建库时设定;
表级设定:就是这里的charset = 字符编码名称
字段级设定:作为字段属性出现。
他们都只对“字符类型”的字段有效。每一级如果没有设定,就会“继承使用”其上一级的设定。
3、comment='表的注释说明文字'
4、engine = “表的存储引擎名”
表的存储引擎又是MySQL的一大知识点:
存储引擎:
什么是存储引擎?
存储引擎也叫“表类型”,是指一个表中的数据以何种方式存放在文件或内存中。不同的存储引擎(表类型)提供不同的性能特性和可用功能。没有一种各方面都又具有最佳性能又具有各种功能的存储引擎。我们要做的是要根据数据的具体使用情形(需求)来选择合适的存储引擎,有的要读取速度快,有的要写入速度快,有的要具有高安全可靠性,有的要海量存储,等等。
常用的存储引擎是innoDB(默认)和Myisam。各种存储引擎性能与功能对比如下(了解):
关于MySQL表的存储引擎知识在面试的时候特容易被问到。面试官会问你“myisam和innodb的区别?”myisam和innodb是MySQL最常用的两种存储引擎,基本上也只会用到这两种。尤其innodb用的最多,它也是表默认的存储引擎。
从上图中可以明显看到myisam和innodb的区别,现在很多朋友还不能看明白,这需要我们一步一步去学习才能真正理解。我们先做这样的理解:
myisam引擎“读”的性能高,主要用于以读为目的、不频繁修改的表,比如文章表、日志表等。
innodb引擎支持事务,这个事务在开发功能时保证数据的安全很重要,它主要用于关键应用表,参与业务逻辑的表。
存储引擎与索引我们会在第十章做更详细的研究说明。