创建数据表
CREATE TABLE 表名 (
字段名1 数据类型 [列级别约束条件] [默认值],
字段名1 数据类型 [列级别约束条件] [默认值],
......
[表级别约束条件]
);
一.使用主键约束
主键是表中一列或多列的组合。
主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一标识表中的一条记录,可以结合外键来表示不同数据表之间的关系,并且可以加快数据库查询的速度。
1.单字段主键
在定义列时指定主键:
字段名 数据类型 PRIMARY KEY
在定义完所有列后指定主键:
[CONSTRAINT 约束名] PRIMARY KEY (字段名)
2.多字段联合主键
在定义完所有列后指定:
PRIMARY KEY (字段1,字段2,...,字段n)
3.使用外键约束
外键用来在两个表之间建立链接,可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,可以为空值,若不为空值时,则每一个外键必须等于对应表中主键的某个值。关联字段的数据类型要相同。
外键的主要作用是保证数据引用的完整性。
字段名 数据类型 references 主表名(主键列);
在定义完字段后:
[CONSTRAINT 约束名] FOREIGN KEY (字段1,...) REFERENCES 主表名(主键列1,...)
4.使用非空约束
非空约束指字段的值不能为空。
字段名 数据类型 not null,
5.使用唯一性约束
唯一性约束指字段的值唯一。允许为空,但只能出现一个空值。
字段名 数据类型 unique
或者在定义完所有列后指定:
[constraint 约束名] unique(字段名1,...)
6.使用默认值约束
如果插入一条新的记录时没有为这个字段赋值,那么系统就会自动为这个字段赋值。
字段名 数据类型 DEFAULT 默认值
二.修改数据表
1.修改表名
alter table 旧表名 rename to 新表名;
2.修改字段的数据类型
alter table 表名 alter column 字段名 type 数据类型
3.修改字段名
alter table 表名 rename 旧字段名 to 新字段名;
4.添加字段
alter table 表名 add column 新字段名 数据类型 [约束];
5.删除字段
alter table 表名 drop 字段名;
6.删除表的外键约束
这对除了非空约束之外所有的约束类型都一样有效。
删除约束必须知道约束名称,已经知道名称来删除约束很简单,如果不知道名称,则需要找到系统生成的名称,使用 \d 表名 可以找到这些信息。
alter table 表名 drop constraint 外键约束名;
移除非空约束,由于非空约束没有名称,因此不能使用上面的方法。
alter table table_name alter column ID drop not null;
三.删除数据表
1.删除没有被关联的表
drop table [if exists] 表1,...;
2.删除被其他表关联的主表
要先删除两表之间的外键关联约束,再执行删除操作。