基本表创建

CREATE TABLE 语句用于在 MySQL 数据库中创建表。

CREATE TABLE Person (
    `PersonID`      INTEGER NOT NULL PRIMARY KEY,
    `LastName`      VARCHAR(80),
    `FirstName`     VARCHAR(80),
    `Address`       TEXT,
    `City`          VARCHAR(100)
) Engine=InnoDB;

每个字段定义必须具有:

  1. 字段名称:有效字段名称。确保将名字包含在`-chars 中。这可确保你可以在 fieldname 中使用例如 space-chars。
  2. 数据类型[长度]:如果字段为 CHARVARCHAR,则必须指定字段长度。
  3. 属性 NULL | NOT NULL:如果指定了 NOT NULL,则任何在该字段中存储 NULL 值的尝试都将失败。
  4. 查看更多的数据类型及其属性在这里

Engine=... 是一个可选参数,用于指定表的存储引擎。如果未指定存储引擎,则将使用服务器的默认表存储引擎(通常为 InnoDB 或 MyISAM)创建表。

设置默认值

此外,在有意义的地方,你可以使用 DEFAULT 为每个字段设置默认值:

CREATE TABLE Address (
    `AddressID`   INTEGER NOT NULL PRIMARY KEY,
    `Street`      VARCHAR(80),
    `City`        VARCHAR(80),
    `Country`     VARCHAR(80) DEFAULT "United States",
    `Active`      BOOLEAN DEFAULT 1,
) Engine=InnoDB;

如果在插入期间没有指定 Street,则在检索时该字段将为 NULL。如果在插入时未指定 Country,则默认为美国

你可以为所有列类型设置默认值,除了BLOBTEXTGEOMETRYJSON 领域。