PostgreSQL数据库常用SQL命令示例
本文仅记录我使用到的部分命令示例。这里不对命令及各种参数做详细介绍,仅列出示例与简单说明。详细介绍可参考PostgreSQL官方发布的手册。
已验证环境
- Ubuntu 20.04
- PostgreSQL 12.5
注意事项
- psql内运行的SQL命令末尾都会以分号作为结束标志。如果没有带上分号,会被认为命令还未结束。
- 字符串要用单引号来包含,不是双引号。
1. 创建表命令:CREATE TABLE
- 示例1:
create table webpage(
id serial primary key,
name varchar(60) unique not null,
contents text not null default '',
scripts text not null default ''
);
简单说明:其中的serial表示是自增列,primary key为主键。unique表示唯一约束,not null表示不能为空,default为默认值。
2. 修改表命令:ALTER TABLE
2.1 修改表名或字段名:
alter table 表名 rename to 新表名;
alter table 表名 rename 字段名 to 新字段名;
2.2 给指定字段设置默认值与删除默认值:
alter table webpage alter column contents set default '';
alter table webpage alter column contents drop default;
简单说明:修改默认值的命令与设置默认值的命令一样,即都使用set default来实现。
2.3 修改字段类型:
alter table 表名 alter column 字段名 type 新类型;
alter table webpage alter column name type char(40);
alter table webpage alter column contents type text;
2.4 删除约束
alter table webpage drop constraint webpage_name_key;
这里要注意的是,约束名称最好使用“\d 表名”命令查看,并根据查看结果来操作。
2.5 添加约束
alter table webpage add unique(name);
alter table webpage add primary key(id);
alter table webpage alter column name set not null;
2.6 删除字段
alter table webpage drop column name;
3. 清空表命令:TRUNCATE
慎用
- 示例1:
truncate webpage;
truncate webpage restart identity;
第2条命令后的参数,意思是自动重新开始被截断表的列所拥有的序列。例如设为主键的列,如果使用第1条命令,则以后增加记录时,主键的值会按原来的计数继续;使用第2条命令则从头开始。
4. 删除表命令:DROP TABLE
慎用
- 示例1:
DROP TABLE articles;
附录:PostgreSQL12.2数据类型表
因为目前PostgreSQL中文在线手册的版本为12.2,所以这里使用的是12.2版本的数据类型表。英文在线手册已经到13版本,需要的朋友可去官网查看。
非常感谢彭煜玮老师和PostgreSQL中文社区文档翻译组的付出。