Skip to main content

SQLite创建带有示例的表

SQLite CREATE TABLE语句简介

要在SQLite中创建新表,请使用create table语句,使用以下语法:

CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type PRIMARY KEY,
column_2 data_type NOT NULL,
column_3 data_type DEFAULT 0,
table_constraints
) [WITHOUT ROWID];

在这种语法中:

请注意,表的主键是唯一标识表中每一行的一列或一组列。

SQLite创建表格示例

假设您必须使用SQLite管理联系人。

每个联系人都有以下信息:

要求是电子邮件和电话必须是唯一的。此外,每个联系人属于一个或多个组,每个组可以有零个或多个联系人。

根据这些要求,我们提出了三个表格:

以下数据库关系图显示了表:联系人组和联系人组。

SQLite Create Table

下面的语句创建contacts表。

CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);

试试看

联系人id是联系人表的主键。

因为主键由一列组成,所以可以使用列约束。

first_name和last_name列具有文本存储类,这些列不为空。这意味着在联系人表中插入或更新行时必须提供值。

电子邮件和电话是唯一的,因此我们对每一列使用唯一约束。

下面的语句创建groups表:

CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);

试试看

groups表非常简单,有两列:group_id和name。组id列是主键列。

下面的语句创建contact_groups表:

CREATE TABLE contact_groups(
contact_id INTEGER,
group_id INTEGER,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);

试试看

contact_groups表的主键由两列组成:contact_id和group_id。

要添加表主键约束,请使用以下语法:

PRIMARY KEY (contact_id, group_id)

此外,联系人id和组id是外键。因此,可以使用外键约束为每列定义外键。

FOREIGN KEY (contact_id) 
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
FOREIGN KEY (group_id) 
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION

请注意,我们将在后续教程中详细讨论外键约束。

在本教程中,您学习了如何使用SQLite create table语句创建具有各种选项的新表。