在使用PostgreSQL数据库时,我们收集了一份方便的PostgreSQL命令和查询清单。如果你想在小抄中加入一些内容,请联系我们@ForestAdmin!
开始使用PostgreSQL
登录并进入PostgreSQL命令行工具psql
$ sudo su - postgres psql
列出 postgres 数据库
\l
连接到postgres数据库
\c databaseName
退出PostgreSQL命令行工具psql
\q
管理PostgreSQL
检查PostgreSQL的版本
SELECT version();
检查PostgreSQL是否已经安装
$ which psql
检查PostgreSQL是否正在运行
$ pgrep -fa -- -D | grep postgres
在Linux上重新启动PostgreSQL
# systemctl restart postgresql
// or
# service postgresql restart
// or
# /etc/init.d/postgresql restart
// or
# /sbin/service postgresql restart
在OSX上重新启动PostgreSQL
# brew services restart postgres
// or
# pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log restart
在Windows上重新启动PostgreSQL
Winkey + R
Type "services.msc"
Click "restart"
更改PostgreSQL的用户密码
$ sudo -u postgres psql
\password postgres
退出psql
\q
与PostgreSQL中的数据库互动
列出 postgres 数据库
\l
连接或切换到postgres数据库
\c databaseName
创建新的postgres数据库
CREATE DATABASE databaseName
删除 postgres 数据库
DROP DATABASE databaseName
重命名 postgres 数据库
ALTER DATABASE old_databaseName TO new_databaseName
SELECT *
FROM mytable
WHERE myfield @> '{"key1":"valueA"}'
与PostgreSQL中的表互动
列出postgres表
\dt
描述Postgres表
\d tableName
创建postgres表
CREATE TABLE tableName(
columnName columnType,
columnName columnType
);
删除Postgres表
DROP TABLE tableName CASCADE
备份和恢复PostgreSQL数据库
备份Postgres数据库
$ pg_dump -d databaseName -U userName > backupFile
恢复Postgres数据库
psql databaseName < backupFile
在PostgreSQL中管理角色和权限
列出 postgres 角色
SELECT rolname FROM pg_roles;
创建Postgres用户
CREATE USER userName WITH PASSWORD 'userPassword';
删除postgres用户
DROP USER userName;
更改postgres用户的密码
ALTER ROLE userName WITH PASSWORD 'userPassword';
列出所有分配的角色 postgres
SELECT
r.rolname,
r.rolsuper,
r.rolinherit,
r.rolcreaterole,
r.rolcreatedb,
r.rolcanlogin,
r.rolconnlimit,
r.rolvaliduntil,
ARRAY(SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid) as memberof,
r.rolreplication
FROM pg_catalog.pg_roles r
ORDER BY 1;
授予postgres数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE databaseName TO userName;
授予postgres数据库的连接权限
GRANT CONNECT ON DATABASE databaseName TO userName;
列出特定角色的权限 postgres
SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = userName ORDER BY table_name;
ProstgreSQL psql 命令回顾
\? | 列出所有可用的psql命令 |
\h COMMAND | 获取特定命令的帮助 |
\l | 列出数据库 |
\c databaseName | 连接到数据库 |
\dt | 列出表 |
\d tableName | 描述表 |
\d+ tableName | 描述表的详细信息 |
\n | List schemas |
\ddf | 列出函数 |
\dv | 列出视图 |
\列表d | List users |
\dy | List events |
\di | List indexes |
\q | 退出 |
需要为PostgreSQL建立管理面板或GUI工具? 查看用于PostgreSQL的森林管理