在MySQL数据库中,建表语句是创建关系型数据库中非常基础的操作之一。在建表时,我们需要指定表的名称、字段名、数据类型等信息,并且还需要使用key来定义表的键。
key是表中的一个索引,用于提高查询的速度。在MySQL中,常见的key有三种,分别是PRIMARY KEY、UNIQUE KEY和FOREIGN KEY。
PRIMARY KEY用于定义表的主键,每个表只能有一个主键。定义主键时,需要在字段名后面添加PRIMARY KEY关键字。例如:
CREATE TABLE student (id INT(11) NOT NULL,name VARCHAR(50) NOT NULL,gender ENUM('M', 'F') NOT NULL,PRIMARY KEY (id));
在上面的例子中,我们定义了一个名为student的表,其主键为id。在表中,id字段的值不能为NULL,且每个id值必须是唯一的。
UNIQUE KEY用于创建唯一键,也可以用于提高查询的速度。定义唯一键时,需要在字段名后面添加UNIQUE关键字。例如:
CREATE TABLE student (id INT(11) NOT NULL,name VARCHAR(50) NOT NULL,email VARCHAR(50) UNIQUE,gender ENUM('M', 'F') NOT NULL,PRIMARY KEY (id));
在上面的例子中,我们定义了一个名为student的表,其中email字段为唯一键。在表中,email字段的值不能为NULL,且每个email值必须是唯一的。
FOREIGN KEY用于定义表之间的关系,即外键。定义外键时,需要在字段名后面添加REFERENCES关键字,并指定外键所参照的主键。例如:
CREATE TABLE student (id INT(11) NOT NULL,name VARCHAR(50) NOT NULL,email VARCHAR(50) UNIQUE,gender ENUM('M', 'F') NOT NULL,PRIMARY KEY (id));CREATE TABLE score (id INT(11) NOT NULL,student_id INT(11) NOT NULL,chinese INT(11),math INT(11),PRIMARY KEY (id),FOREIGN KEY (student_id) REFERENCES student(id));
在上面的例子中,我们定义了两个表,分别为student和score。在score表中,student_id字段为外键,参照了student表中的id字段。这样,我们就通过FOREIGN KEY关键字定义了两个表之间的关系。