\l 查看系统中现存的数据库
\c 切换库,如template1=# \c sales 从template1转到sales库\d 查看表和sequence
\d table_name,查看表结构,如:\d public.t_ip或\d t_ip,虽然`\d`看不到其他schema的表,但依然可以描述表`\d wechat.stat_basic_hour`\dt 只查看表
\di 查看索引
\du 查看有哪些用户
\dn 查看schema
\dp 显示表的权限分配情况
\q 退出客户端程序psql
SET SEARCH_PATH TO public,wechat; 设置搜索路径(不区分大小写,下同) 设置后`\d`能列出指定的schema的表和sequence
SHOW SEARCH_PATH; 查看搜索模式
SELECT USER; 查看当前是什么用户登录的
postgres=# \conninfo 查看连接信息(什么用户连的)
You are connected to database "postgres" as user "postgres" via socket in"/var/run/postgresql" at port "5432".`postgres=#` 的提示符`postgres`表示当前数据库是`postgres`
建库建 Schema
# 建库
CREATE DATABASE mpa_stat OWNER dbuser;
# 删除
DROP DATABASE mpa_stat;
创建、删除schema
CREATE SCHEMA schema01; (是创建在当前数据库,使用\dn查看)
DROP SCHEMA schema01;
# 授权数据库给用户
GRANT ALL ON DATABASE exampledb TO dbuser;
#授权表给用户
GRANT ALL ON public.mpa_app TO dbuser;
#授权sequence给用户
GRANT ALL ON SEQUENCE public.mpa_app_id_seq to dbuser;
# 不需要一个个地授权,按schema整体打包授权给某用户
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dbuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dbuser;
----所有者------
# 修改库的所有者
alter database mytestdb owner to mpa_dev;
#修改schema所有者
alter schema wechat owner to mpa_dev;
用户相关
# 创建用户
CREATE USER mpa_prod WITH PASSWORD '51la@xcx20';