基本
切换和连接
$ sudo -u postgres psql
列出所有数据库
postgres=# \l
连接到名为 postgres 的数据库
postgres=# \c postgres
断开
postgres=# \q
postgres=# \!
psql 命令
| 参数 | 示例 | 说明 |
| [-d] | psql -d mydb | 连接到数据库 |
| -U | psql -U john mydb | 以特定用户身份连接 |
| -h -p | psql -h localhost -p 5432 mydb | 连接到主机/端口 |
| -U -h -p -d | psql -U admin -h 192.168.1.5 -p 2506 -d mydb | 连接远程 PostgreSQL |
| -W | psql -W mydb | 强制密码 |
| -c | psql -c '\c postgres' -c '\dt' | 执行 SQL 查询或命令 |
| -H | psql -c "\l+" -H postgres > database.html | 生成 HTML 报告 |
| -l | psql -l | 列出所有数据库 |
| -f | psql mydb -f file.sql | 从文件执行命令 |
| -V | psql -V | 打印 psql 版本 |
获得帮助
| \h | SQL 命令语法帮助 |
| \h DELETE | DELETE SQL 语句语法 |
| \? | PostgreSQL 命令列表 |
在 PostgreSQL 控制台中运行
PostgreSQL 工作
Recon 观察
显示版本
SHOW SERVER_VERSION;
显示系统状态
\conninfo
显示环境变量
SHOW ALL;
列出用户
SELECT rolname FROM pg_roles;
显示当前用户
SELECT current_user;
显示当前用户的权限
\du
显示当前数据库
SELECT current_database();
显示数据库中的所有表
\dt
列出函数
\df
Databases 数据库
列出数据库
\l
连接到数据库
\c
显示当前数据库
SELECT current_database();
创建数据库
CREATE DATABASE
删除数据库
DROP DATABASE IF EXISTS
重命名数据库
ALTER DATABASE
Tables 表
列出当前数据库中的表
\dt
SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;
全局列表
\dt *.*.
SELECT * FROM pg_catalog.pg_tables
列表表架构
\d
\d+
SELECT column_name, data_type, character_maximum_length
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '
创建表
CREATE TABLE
);
创建表,主键自增
CREATE TABLE
);
删除表
DROP TABLE IF EXISTS
Permissions 权限
成为 postgres 用户,如果您有权限错误
sudo su - postgres
psql
授予 对数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE
授予数据库连接权限
GRANT CONNECT ON DATABASE
授予架构权限
GRANT USAGE ON SCHEMA public TO
授予函数权限
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO
授予在所有表上选择、更新、插入、删除的权限
GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA public TO
在表上授予权限
GRANT SELECT, UPDATE, INSERT ON
授予对表的选择权限
GRANT SELECT ON ALL TABLES IN SCHEMA public TO
Columns 列
添加栏目
ALTER TABLE
ADD
更新栏
ALTER TABLE
ALTER
删除列
ALTER TABLE
DROP
将列更新为自增主键
ALTER TABLE
ADD COLUMN
使用自动递增的主键插入表中
INSERT INTO
VALUES (DEFAULT,
INSERT INTO
VALUES (
Data 数据
选择 所有数据
SELECT * FROM
读取一行数据
SELECT * FROM
搜索数据
SELECT * FROM
插入 数据
INSERT INTO
更新 数据
UPDATE
SET
WHERE
删除 所有数据
DELETE FROM
删除特定数据
DELETE FROM
WHERE
Users 用户
列出角色
SELECT rolname FROM pg_roles;
创建用户
CREATE USER
删除用户
DROP USER IF EXISTS
更改 用户密码
ALTER ROLE
Schema
列出 Schemas
\dn
SELECT schema_name FROM information_schema.schemata;
SELECT nspname FROM pg_catalog.pg_namespace;
创建架构
CREATE SCHEMA IF NOT EXISTS
删除模式
DROP SCHEMA IF EXISTS
PostgreSQL 命令
表
| \d
|