PostgreSQL基础操作

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PostgreSQL基础操作

1 PG常用命令

1.1 登录数据库

[postgres@eas root]$ psql      (切换到postgres用户进入postgresql命令行)

或使用客户端连接数据库

psql -U postgres -d dbname -h 127.0.0.1 -p 5432 (-U 指定用户  -d 指定数据库  -h 指定服务器 -p 指定端口 )



1.2 常用命令

postgres=# \?   # 显示帮助信息

postgres=# \q   # 退出 or: exit;

postgres=# \l    # 列出所有库

postgres=# \du   # 列出所有用户, 指令显示用户和用户的用户属性

postgres=# \d    # 列出库下所有表

postgres=# \di   # 查看索引

postgres=# \dn   # 查看模式schema列表

postgres=# \dn+  # 查看模式schema列表详情

postgres=# \z 或 \dp   # 显示用户访问权限

postgres=# \c dbname   # 切换数据库,相当于mysql的use dbname

postgres=# \c - username   #切换用户

postgres=# \d tblname   # 查看表定义, 相当于desc tblname,show columns from tbname

postgres=# \db   #列出现有的表空间。


2 PG用户角色管理

2.1 用户角色介绍

角色的属性

角色可以拥有一些属性或者叫权限,比如登录数据库,需要角色拥有LOGIN属性,这类权限在创建角色的时候指定,或者通过alter role来修改。


创建角色: create role 角色名 with [属性项] password 密码

修改角色属性:alter role 角色名 [属性项]


常用属性项:

SUPERUSER/NOSUPERUSER,创建出来的用户是否为超级用户,只有超级用户才能创建超级用户

LOGIN/NOLOGIN,指定创建的用户是否有连接数据库的权限

INHERIT/NOINHERIT,指定创建的用户是否继承某些角色的权限

CREATEDB/NOCREATEDB,指定创建出来的用户是否有权限创建数据库

CREATEROLE/NOCREATEROLE,指定创建出来的用户是否有创建其他角色的权限

CONNECTION LIMIT connlimit,指定用户能够使用的最大并发连接数量,默认-1,表示没有限制

REPLICATION,指定复制权限

PASSWORD password,指定密码

VALID UNTIL 'timestamp',指定密码失效时间,如果不指定,永远有效


角色(role)和用户(user)可以等同使用,创建用户时,默认就已经带上了LOGIN属性,而角色默认没有带任何属性。


2.2 创建用户和数据库

创建用户

postgres=# create user 用户名 with password '密码' CREATEDB;    

#创建用户,给予创建库的权限



创建数据库

postgres=# CREATE DATABASE 库名 WITH OWNER = 用户名 ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1 TEMPLATE template0;  

 # 创建数据库,指定字符集,表空间,所属者


3 PG常用数据字典

3.1 常用数据字典

常用数据字典(视图)

说明

pg_tables

该视图提供了对有关数据库中每个表的有用信息地访问

pg_user

该视图提供了对数据库用户的相关信息的访问。  这个视图只是pg_shadow表的公众可读的部分的视图化,但是不包含口令字段

pg_views

该视图提供了对数据库里每个视图的有用信息的访问途径

pg_indexes

该视图提供对数据库中每个索引的有用信息的访问

pg_proc 

该视图存储关于函数(或过程)的信息

pg_database

该视图存储关于数据库的信息

pg_namespace

该视图存储关于表空间的信息

pg_roles

该视图提供访问数据库角色有关信息的接口。这个视图只是pg_authid表的公开可读部分的视图化,同时把口令字段用空白填充

pg_settings  

该视图提供了对服务器运行时参数的访问。它实际上是SHOWSET命令的另外一种方式


常用数据字典(视图)

说明

select version();

查看数据库版本

select pg_postmaster_start_time();

查看数据库启动时间

select pg_conf_load_time();

查看最近一次load配置文件的时间

show timezone;

查看数据库时区

select now();

查看当前系统时间

select user; 或者 select current_user;

查看当前用户名

select current_database();

查看当前连接数据库

select pg_backend_pid();

查询当前sessionpid

show parameter_name;

查询参数配置

select * from pg_stat_activity;

查询长时间运行的sql

select pg_cancel_backend(pid)

取消正在执行的sql

select pg_terminate_backend(pid);

终止后台服务进程

select u.usename,p.oid,p.proname  from pg_user u,pg_proc p

where u.usesysid=p.proowner  and u.usename='用户名';

查看当前用户所在库的存储过程


3.1 pg_settings参数

该视图提供了对服务器运行时参数的访问

select name,setting,context from pg_settings;

数据库参数: pg_settings



更新数据库参数后(详见PostgreSQL数据库参数维护),

针对sighup类型的参数,动态重新加载配置文件方法:

select pg_reload_conf();             在psql命令行操作

 或者 

pg_ctl reload -D $PGDATA         在操作系统命令界面操作,需切换到postgres用户下执行

PostgreSQL基础操作

1 PG常用命令1.1 登录数据库[postgres@eas root]$ psql (切换到postgres用户进入postgresql命令行)或使用客户端连接数据库ps...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息