目录

PostgreSQL 基础操作

连接数据库

1
psql -U <USERNAME> -d <DBNAME> -h <HOSTNAME> -p <PORT>

默认端口 5432。

psql 命令存在简写形式。如果当前 Linux 系统用户,同时也是 PostgreSQL 用户,则可以省略用户名,同时也不需要输入密码

命令行操作

以下命令末尾不需要加分号。

  • \h <SQL> 查看 SQL 命令的解释,比如 \h select
  • \? 查看 psql 命令列表;
  • \l 列出所有数据库;
  • \c <DBNAME> 连接指定数据库;
  • \d 列出当前数据库的所有表;
  • \d <TABLE_NAME> 列出某张表的表结构;
  • \du 列出所有用户;
  • \e 打开文本编辑器;
  • \conninfo 列出当前数据库连接信息;
  • \passwd <DBUSER> 修改数据库用户密码;
  • \q 退出命令行。

用户和权限操作

新建用户

1
CREATE USER dbuser WITH PASSWORD 'password';

分配权限

1
GRANT ALL PRIVILEGES ON DATABASE dbname to dbuser;

数据库操作

创建数据库

1
CREATE DATABASE exampledb OWNER dbuser;

表操作

1
2
3
4
5
6
7
8
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

# 重命名表格
ALTER TABLE user_tbl RENAME TO backup_tbl;

# 删除表格
DROP TABLE IF EXISTS backup_tbl;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 添加字段
ALTER TABLE user_tbl ADD email VARCHAR(40);

# 更新字段
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

# 重命名字段
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

# 删除字段
ALTER TABLE user_tbl DROP COLUMN email;

数据(记录)操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 插入记录
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');

# 选择记录
SELECT * FROM user_tbl;

# 更新记录
UPDATE user_tbl set name = '李四' WHERE name = '张三';

# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;