支持 SQL 标准中的所有字段和表级完整性约束,包括:主键约束、外键约束、唯一约束、非空约束、检查约束以及默认值。
管理数据表
ALTER TABLE [IF EXISTS]
name
-- 重命名表
RENAME TO
new_name
;
DROP TABLE [IF EXISTS]
name
; --删除表
ALTER TABLE
table_name
-- 增加约束
ADD CONSTRAINT
table_constraint
;
ALTER TABLE
table_name
--删除约束
DROP CONSTRAINT [IF EXISTS]
name
;
ALTER TABLE
table_name
-- 设置/删除非空约束
ALTER COLUMN
name
{SET | DROP} NOT NULL;
CREATE INDEX
name
ON
table_name
-- 创建索引
(
column1
[ASC | DESC], …);
SELECT * FROM pg_indexes; -- 查看索引
ALTER INDEX
name
RENAME TO
new_name
;
ALTER INDEX
name
SET TABLESPACE
tablespace_name
; -- 修改索引
REINDEX
name
; -- 重建索引
DROP INDEX [IF EXISTS]
name
; -- 删除索引
管理表空间
CREATE TABLESPACE
name
OWNER
user
LOCATION
‘directory
’; -- 创建表空间
SELECT * FROM pg_tablespace; -- 查看表空间
ALTER TABLESPACE
name
…; -- 修改表空间
DROP TABLESPACE [IF EXISTS]
name
; -- 删除表空间
不剪发的 Tony 老师
管理数据表
CREATE TABLE [IF NOT EXISTS]
name
-- 创建表
(
column_name data_type column_constraint,
...,
table_constraint
);
CREATE TABLE [IF NOT EXISTS]
name
-- 复制表
AS SELECT
…
;
SELECT *
FROM information_schema.tables -- 查看所有的表
WHERE table_type = 'BASE TABLE';
postgres=# \d
table_name
; -- 查看表结构
ALTER TABLE
table_name
-- 增加字段
ADD COLUMN
name data_type column_constraint
;
ALTER TABLE
table_name
-- 修改字段类型
ALTER COLUMN
name
TYPE
data_type
;
ALTER TABLE
table_name
-- 修改字段名称
RENAME COLUMN
name
TO
new_name
;
ALTER TABLE
table_name
DROP COLUMN [IF EXISTS]
name
; -- 删除字段
备份与还原
pg_dump
db_name
>
file_name.sql
-- 备份数据库
pg_dump -Fc
db_name
-f
file_name.dmp
pg_dump -Fd
db_name
-f
file_dir
pg_dump -Ft
db_name
-f
file_name.tar
psql
newdb
-f
file_name.sql
-- 还原数据库
pg_restore -d
newdb file_name.dmp
pg_restore -d
newdb file_dir
pg_restore -d
newdb file_name.tar
pg_dumpall -f
cluster.sql
; -- 备份整个集群
COPY
table_name
FROM ‘
filename
’; -- 导入表
COPY
table_name
TO
‘filename
’; -- 导出表
评论