本文整理了 PostgreSQL 在命令行环境中的常见操作,涵盖连接方式、控制台快捷命令、权限管理以及数据定义与数据操作语句,可作为日常查阅的速查表。
连接数据库
psql -U <USERNAME> -d <DBNAME> -h <HOSTNAME> -p <PORT>
默认端口为 5432。psql
命令提供了简写形式:当前系统用户与 PostgreSQL 用户同名时,可以省略 -U
及密码输入,直接连接。
命令行操作
以下控制台命令均以反斜杠开头,执行时无需添加分号:
\h <SQL>
查看 SQL 语句帮助,如\h SELECT
;\?
查看psql
支持的所有控制命令;\l
列出所有数据库;\c <DBNAME>
连接指定数据库;\d
列出当前数据库的所有表;\d <TABLE_NAME>
列出某张表的表结构;\du
列出所有用户;\e
打开文本编辑器;\conninfo
列出当前数据库连接信息;\passwd <DBUSER>
修改数据库用户密码;\q
退出psql
。
用户和权限操作
新建用户
CREATE USER dbuser WITH PASSWORD 'password';
分配权限
GRANT ALL PRIVILEGES ON DATABASE dbname to dbuser;
数据库操作
创建数据库
CREATE DATABASE exampledb OWNER dbuser;
表操作
-- 创建新表
CREATE TABLE user_tbl (
name VARCHAR(20),
signup_date DATE
);
-- 重命名表格
ALTER TABLE user_tbl RENAME TO backup_tbl;
-- 删除表格
DROP TABLE IF EXISTS backup_tbl;
-- 添加字段
ALTER TABLE user_tbl ADD COLUMN 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;
数据(记录)操作
-- 插入记录
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 = '李四';