- CREATE TABLE student
(
name VARCHAR(20) NOT NULL,
sex ENUM(‘F’ , ’M’) NOT NULL,
student_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (student_id)
) ENGINE = InnoDB;
释义:
VARCHAR 至多含有n个字符的可变字符串数据类型;
NOT NULL 必须有数据,不能为空;
ENUM 枚举数据类型;
UNSIGNED 无符号,即不出现负数;
AUTO_INCREMENT 插入数据记录时,不插入或输入NULL,则自动生成下一个编号并赋值;
PRIMARY KEY 主键,强制唯一性,默认建立数据表索引;
ENGINE 指定MySQL用来创建新数据表的存储引擎的名字,省略即使用默认引擎,即MyISAM
- CREATE TABLE score
(
student_id INT UNSIGHED NOT NULL,
event_id INT UNSIGHED NOT NULL,
score INT NOT NULL,
PRIMARY KEY (event_id, student_id),
INDEX (student_id),
FOREIGN KEY(student_id) REFERENCES student (student_id)
)ENGINE = InnoDB;
释义:
INDEX 索引;
FOREIGN KEY 外键,与REFERENCES连用,指明与某张数据表的某字段相对应;
- 为何单独建立INDEX索引?
对于出现在FOREIGN KEY 外键定义中的每一个数据列,要么本身有一个索引,要么是某个多数据列索引里第一个被列出的数据列。因为student_id数据列未在联合主键定义中列在第一位,不满足成为外键条件。故在student_id数据列上另行创建索引。
- DESCRIBE/DESC/EXPLAIN/(SHOW COLUMNS FROM)/(SHOW FIELDS FROM) 数据表名; //查看数据表结构