创建数据表和修改数据表

时间:2022-09-19 14:31:09

创建表
SQL中创建和删除数据库对象的语句被称为数据定义语言(data definition language, DDL);
操作这些对象中数据的语句被称为数据操作语言(data manipulation language, DML)。
创建语句属于DDL,用CREATE TABLE命令
CREATE [TEMP|TEMPORARY] TABLE table_name (column_definitions [, constraints]);
如果没有生命创建临时表,则创建的是基本表,将会在数据库中持久存在。
column_definitions 表示一个用逗号分隔的字段列表。每个字段定义包括一个名称、一个域和一个逗号分隔的字段约束表。
“域”一般情况下是一个类型,与编程语言中的数据类型同名,指明存储在该列的数据的类型。在 SQLite 中有 5 种本地类型:
INTEGER、REAL、TEXT、BLOB 和 NULL。“约束”用来控制什么样的值可以存储在表中或特定的字段中。
例如,你可以用UNIQUE 约束来规定所有记录中某个字段的值要各不相同。
CREATE TABLE contacts ( id INTEGER PRIMARY KEY,
name TEXT NOT NULL COLLATE NOCASE,
phone TEXT NOT NULL DEFAULT ‘UNKNOWN’,
UNIQUE (name,phone) );

改变表
用ALTER TABLE命令改变表的结构。SQLite中的ALTER TABLE命令既可以改变表明,也可以增加字段。
格式为:
ALTER TABLE table {RENAME TO name | ADD COLUMN column_def}
花括号括起来一个选项列表,必须从其中选取一个选项。

sqlite> ALTER TABLE contacts
ADD COLUMN email TEXT NOT NULL DEFAULT ” COLLATE NOCASE;
sqlite> .schema contacts
CREATE TABLE contacts ( id INTEGER PRIMARY KEY,
name TEXT NOT NULL COLLATE NOCASE,
phone TEXT NOT NULL DEFAULT ‘UNKNOWN’,
email TEXT NOT NULL DEFAULT ” COLLATE NOCASE,
UNIQUE (name,phone) );