CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
在这个sql语句中,出现了这样的ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
但不太明白最后那三项是干嘛的?
ENGINE=InnoDB不是默认就是InnoDB引擎吗?
AUTO_INCREMENT=13,它不是设置过自增的吗?为什么还要设数字?
utf8不是已经在my.ini里设置过了?
1. ENGINE=InnoDB不是默认就是InnoDB引擎吗?
指定列的排序规则ENGINE=InnoDB ,是 MySQL 的数据库引擎的设置,如果不写也是ok,就会走默认的,在这里写上是因为可以很清楚的看到这个建表语句用了哪些,而且在创建表的时候,写上也是一个很好的习惯。
2. AUTO_INCREMENT=13,它不是设置过自增的吗?为什么还要设数字?
这个是自动递增列的初始数值 ,在这里设置数字的意思是想要让这条语句在增长的时候,从13开始自增,注意:根据记录自增时的主键id,手动插入的不受控制。
3. tf8不是已经在my.ini里设置过了?
这个虽然在my.ini设置过了,但设置的是mysql的的语言编码,而这里创建的时候不设置,就会出现乱码问题,二者的作用域是不一样的,在创建表单的时候,这个charset会作用到这个表上,他代表mysql建立数据库数据表时设定默认字符集为utf-8。