远程登陆

psql -h 主机 -U 用户  -p端口  -W   -d 数据库  #-W表示密码,例如:psql -h 192.168.137.3 -U postgres  -p 5432 -W -d postgres

远程执行命令

psql -h 192.168.137.3 -p 5432 postgres postgres -A -c "select * from test limit 10"

查看所有数据库,owner,字符编码,访问权限

\l

切换数据库

\c postgres

查看当前库里面的所有表

\dt

查看表结构

\d  test

显示所有用户

\du

查看当前用户

testdb=> select user;
user
------
test
(1 row)

修改数据库的拥有者

postgres=# alter database devdb owner to devdb;
ALTER DATABASE

#查询数据库默认表空间

postgres=# select d.datname,p.spcname from pg_database d, pg_tablespace p where d.datname='devdb' and p.oid = d.dattablespace;
datname | spcname
---------+------------
devdb | pg_default
(1 row)

#修改数据库的表空间

ALTER DATABASE 数据库名称 SET TABLESPACE 表空间名称;

需注意三个问题:
1 不能在当前数据库下面修改
2 数据库不能存在表或者索引已经指定默认的表空间
3 必须没有人连接这个数据库

创建用户

create user username with password '****';

删除用户

drop user username;

修改用户密码

alter user postgres with password 'password';

创建数据库

 create database dbtest owner username; -- 创建数据库指定所属者

修改数据库名称

alter database devdb rename to dev_update;

将数据库权限赋给某个用户

grant all on database dbtest to username; -- 将dbtest所有权限赋值给username

schema是啥

schema概念有点像命名空间或者把它想像成一个文件系统中的目录,差别就是这个schema下不能再有schema嵌套.
各个对象比如表、函数等存放在各个schema下,同一个schema下不能有重复的对象名字,但在不同schema下可以重复.

创建schema

create schema test; #默认谁创建owner就是谁

创建schema并指定owner

create schema test authorization user;

修改schema的owner

alter schema test owner to other_user;

删除schema

drop schema test;

删除schema和它下面的对象(表)

drop schema test cascade;

schema下对象的操作

db01=# create table schema01.t1(id int);  #创建对象
CREATE TABLE
db01=# insert into schema01.t1 values(1); #插入一个值
INSERT 0 1
db01=# select * from t1; #查询,直接查对象报错
ERROR: relation "t1" does not exist
LINE 1: select * from t1;
^
db01=# select * from schema01.t1; #查询加上shema.对象
id
----
1
(1 row)
db01=# select * from db01.schema01.t1; #某个数据库下面的shema的对象
id
----
1
(1 row)

查看schema

\dn;

查看当前用户和当前库

#查看当前用户
postgres=> select user;
user
--------
dbuser
(1 row) #查看当前库
postgres=> select current_database();
current_database
------------------
postgres
(1 row)

赋予所有用户对表的所有权限

grant all on test to public;

注意:

可以建大写的表名但是要加上双引号,而且使用工具navicat点击的时候显示没有权限,但是可以通过命令查看

经常执行postgres命令的时候会杂乱显示,可以设置竖排查看

\x

定制命令,进入数据库使用 :命令 查询

vim ~/.psqlrc

#查询等待事件
\set wait_event 'select pid, usename, datname, query, client_addr from pg_stat_activity where pid <> pg_backend_pid() and wait_event is not null order by wait_event_type;'
#查询数据库连接数
\set connections_jqs 'select usename, datname, client_addr, count(*) from pg_stat_activity where pid <> pg_backend_pid() group by 1,2,3 order by 1,2,4 desc;'
#查询活动会话
\set active_session_jqs 'select pid, usename, datname, query, client_addr from pg_stat_activity where pid <> pg_backend_pid() and state=\' active\' order by query;'

定制命令使用:

postgres=# :active_session_jqs;
pid | usename | datname | query | client_addr
-----+---------+---------+-------+-------------
(0 rows) postgres=# :wait_event;
pid | usename | datname | query | client_addr
------+----------+----------+--------------------------------------------------------------------------+---------------
7136 | | | |
7138 | postgres | | |
7134 | | | |
7133 | | | |
7135 | | | |
8400 | postgres | postgres | +| 192.168.137.1
| | | SELECT +|
| | | db.oid as did, db.datname, db.datallowconn, +|
| | | pg_encoding_to_char(db.encoding) AS serverencoding, +|
| | | has_database_privilege(db.oid, 'CREATE') as cancreate, datlastsysoid+|
| | | FROM +|
| | | pg_database db +|
| | | WHERE db.oid = 13287 |
(6 rows) postgres=# :connections_jps;
ERROR: syntax error at or near ":"
LINE 1: :connections_jps;
^
postgres=# :connections_jqs; #没弄明白为啥第二次可以得出结果
usename | datname | client_addr | count
----------+----------+---------------+-------
postgres | postgres | 192.168.137.1 | 1
postgres | | | 1
| | | 4
(3 rows)

修改时区的三种方式

--修改时区的方法
1. 全局参数 postgres配置文件修改时区:168服务器 grep timezone postgresql.conf

  log_timezone = 'UTC'
  timezone = 'UTC'

#重新加载生效
 cd /data/postgres/
 ./bin/pg_ctl -D ./data reload

2. 数据库级配置
alter database dbname set timezone='UTC'; pipeline=# select * from pg_db_role_setting ;
setdatabase | setrole | setconfig
-------------+---------+--------------------------------------
14930 | 0 | {TimeZone=UTC} 3. 用户级配置
alter role rolname set timezone='UTC';
或者
alter role all set timezone='UTC'; pipeline=# select * from pg_db_role_setting ;
setdatabase | setrole | setconfig
-------------+---------+--------------------------------------
14930 | 0 | {TimeZone=UTC}
0 | 0 | {TimeZone=UTC}

查看时间和时区

--查看pg的时区与时间

postgres=# select now();

now

-------------------------------

2015-11-18 17:42:28.755732-08

(1 row)

--查看时区

postgres=# show time zone;

TimeZone

------------

US/Pacific

处理空闲idle进程,参数单位为毫秒,可以设置为30000  ---》30秒

[postgres@cdppgdev data]$ cat postgresql.conf |grep idle_in_transaction_session_timeout
#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled

其他

postgres服务相关语法的更多相关文章

  1. linux 软连接创建 压缩解压缩 linux的dns服务相关

    linux软连接创建 注意用绝对路径,语法如下 ln -s 目标文件绝对路径 软连接名字绝对路径 ln -s /小护士.txt /tmp/hs.txt 修改linux的PS1变量,命令提示符变量 PS ...

  2. sublime Emmet的用法及相关语法

    本节来讲一下Emmet插件的用法及相关语法. Emmet插件极大的提高了编程员的编程速度,下面我们来讲讲它的具体语法: 一.生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 docty ...

  3. HTML基础-------最初概念以及相关语法

    HTML概念以及相关语法 HTML HTML是一种类似于(c,java,c++)之类的语言,他是用来描述网页的一种语言.通过各种标签所代表的语义来构建出一个网页,再通过浏览器的渲染功能来实现该网页的各 ...

  4. innobackupex 相关语法讲解【转】

    innobackupex 相关语法讲解 连接服务器 The database user used to connect to the server and its password are speci ...

  5. 【架构】SpringCloud JHipster -微服务相关资料

    SpringCloud-微服务相关资料 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结 - zeb_perfect的专栏 - 博客频道 - ...

  6. 比较C++、Java、Delphi声明类对象时候的相关语法

    同学们在学习的时候经常会遇到一些问题,C++.Java.Delphi他们到底有什么不一样的呢?今天我们来比较C++.Java.Delphi声明类对象时候的相关语法.希望对大家有帮助! C++中创建对象 ...

  7. DHCP服务相关实验

    一.DHCP 相关介绍 1.dhcp服务相关 软件名: dhcp #DHCP服务软件包 dhcp-common #DHCP命令软件包(默认已安装) 服务名: dhcpd #DHCP服务名 dhcrel ...

  8. 详细分析SQL语句逻辑执行过程和相关语法

    本文目录: 1.SQL语句的逻辑处理顺序 1.2 各数据库系统的语句逻辑处理顺序 1.2.1 SQL Server和Oracle的逻辑执行顺序 1.2.2 MariaDB的逻辑执行顺序 1.2.3 M ...

  9. Linux学习-DNS服务相关

    一.DNS服务简介 1.基本概念 (1) DNS( Domain Name System )域名系统,是一种组织成域层次结构的计算机和网络服务命名系统,是一个应用层协议,使用TCP与UDP的53端口, ...

随机推荐

  1. 编写mapreduce的程序的套路

    https://blog.csdn.net/qq_42881421/article/details/83543926 给出下面6个经典案例: http://www.cnblogs.com/xia520 ...

  2. BiNGO的GO分析

    GO富集分析对老师们来说想必都不陌生,几乎在任何项目中都会出现.今天就给大家介绍一款简单易学又好用的富集分析小软件---BiNGO.它是Cytoscape软件中很出色的一个插件.它提供的结果中除了文本 ...

  3. dubbo-go 的开发、设计与功能介绍

    dubbo-go 的前世今生 dubbo-go 是目前 Dubbo 多语言生态最火热的项目.dubbo-go 最早的版本应该要追溯到 2016 年,由社区于雨同学编写 dubbo-go 的初版.当时很 ...

  4. HTTP请求流程基础知识

    HTTP协议解析: HTTP即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML文档从WEB服务器传输到WEB浏览器. URL(统一资源 ...

  5. 「树的直径」BFS方法证明

    选定任意一个点u,从u开始BFS求出距离u最大的点s,再从s点出发BFS到距离s最大的点t,则dis(s,t)即为树的直径 证明 其实只要找到了树的直径的一个端点,再BFS找到最远点就一定是直径的另一 ...

  6. xshell如何传输文件【转】

    1.打开xshell工具,连接到服务器. 2.yum安装一款工具. #yum install  lrzsz -y 3.检查是否安装成功. #rpm -qa |grep lrzsz 4.上传文件的执行命 ...

  7. 4 November in ss

    Contest A. 输油管道问题 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有 \(n\) 口油井的油田.从每口油井都要有一条输油管道沿最短路经 (或南或北) 与主管道相连.如果给 ...

  8. 使用ajax前必须了解的知识

    ajax的全称: asynchronous javascript and xml (异步的javascript和xml) ajax不是某种编程语言 是一种在无需重新加载整个页面的情况下能够更新部分网页 ...

  9. ibatis 的使用

    1. 文本的使用 select  ‘day’+Num from Table;//Sql select convert(varchar,'day')+Num from Table;//ibatis

  10. linux执行时间段内日志关键字搜索

    sed -n '/起始时间/,/结束时间/p' 日志文件 | grep '关键字' 查询文件debug.log在2019-11-18 08:00:00~2019-11-18 08:21:00时间段内e ...