建表
CREATE TABLE `student` (
`student_id` VARCHAR(32) NOT NULL COMMENT '主键',
`student_name` VARCHAR(50) NOT NULL COMMENT '学生姓名',
`student_class` VARCHAR(30) NOT NULL COMMENT '学生所在班级',
`create_time` TIMESTAMP NOT NULL DEFAULT current_timestamp COMMENT '创建时间',
PRIMARY KEY (`student_id`),
KEY idx_create_time (`create_time`)
) ENGINE=InnoDB, DEFAULT CHARSET=utf8 COMMENT '学生表';
说明:
1 - 表名和列名不是用单引号,而是tab键
的上一个键——“点”,否则会报语法错误
2 - NOT NULL代表非空,COMMENT后面接的字符串是对该列名的解释
3 - TIMESTAMP是时间戳类型,设置了默认值为取当前时间current_timestamp
4 - PRIMARY KEY ()设置主键,里面用的同样是“点”
5 - KEY idx_create_time () 设置索引,索引名为idx_create_time
6 - ENGINE=InnoDB, DEFAULT CHARSET=utf8 设置的是数据库使用的引擎和字符集,如果不写,建表时MySQL也会自动选择默认的ENGINE和CHARSET。
可以使用指令查看MySQL支持的ENGINE和CHARSET
show engines;
show charset;
AUTO_INCREMENT
create table `student`(
`student_id` INT AUTO_INCREMENT PRIMARY KEY NOT NULL COMMENT '主键',
`student_name` varchar(30) NOT NULL COMMENT '学生姓名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '学生表';
在定义列表中使用 AUTO_INCREMENT 默认从1开始增长,且步长为1。
create table `student`(
`student_id` INT AUTO_INCREMENT PRIMARY KEY NOT NULL COMMENT '主键',
`student_name` varchar(30) NOT NULL COMMENT '学生姓名'
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 COMMENT '学生表';
如果想设置以某个数字开始增长,在表末尾添加AUTO_INCREMENT=Number
。