基本表创建
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;
每个字段定义必须具有:
- 字段名称:有效字段名称。确保将名字包含在`-chars 中。这可确保你可以在 fieldname 中使用例如 space-chars。
- 数据类型[长度]:如果字段为
CHAR
或VARCHAR
,则必须指定字段长度。 - 属性
NULL
|NOT NULL
:如果指定了NOT NULL
,则任何在该字段中存储NULL
值的尝试都将失败。 - 查看更多的数据类型及其属性在这里 。
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
,则默认为美国。
你可以为所有列类型设置默认值,除了对 BLOB
,TEXT
,GEOMETRY
和 JSON
领域。