PostgreSQL命令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PostgreSQL命令

1.直接登录
psql -h 172.16.35.179 -U username -d dbname

psql username

2.切换数据库
\c dbname

\c dbname username serverIP port

列出所有的数据库
mysql: show databases
psql: \l或\list


列出当前数据库下的数据表
mysql: show tables
psql: \d

列出指定表的所有字段
mysql: show columns from table name
psql: \d tablename

查看指定表的基本情况
mysql: describe tablename
psql: \d+ tablename

退出登录
mysql: quit 或者\q
psql:\q



1.createdb 数据库名称
产生数据库
2.dropdb 数据库名称
删除数据库

3.CREATE USER 用户名称
创建用户
4.drop User 用户名称
删除用户

5.SELECT usename FROM pg_user;
查看系统用户信息
\du

7.SELECT version();
查看版本信息

8.psql 数据库名
打开psql交互工具

9.mydb=> \i basics.sql
\i 命令从指定的文件中读取命令。

10.copy weather from '/home/user/weather.txt';
批量将文本文件中内容导入到wether表



11.SHOW search_path;
显示搜索路径

12.创建用户
CREATE USER 用户名 WITH PASSWORD '密码'

13.创建模式
CREATE SCHEMA myschema;

14.删除模式
DROP SCHEMA myschema;

15.查看搜索模式
SHOW search_path;

16.设置搜索模式
SET search_path TO myschema,public;

17.创建表空间
create tablespace 表空间名称 location '文件路径';

18.显示默认表空间
show default_tablespace;

19.设置默认表空间
set default_tablespace=表空间名称;

20.指定用户登录
psql MTPS -u

21.显示当前系统时间、
select now();

22.配置plpgsql语言
CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler

23.删除规则

DROP RULE name ON relation [ CASCADE | RESTRICT ]
?
输入
name
要删除的现存的规则.

relation
该规则应用的关系名字(可以有大纲修饰).

CASCADE
自动删除依赖于此规则的对象。

RESTRICT
如果有任何依赖对象,则拒绝删除此规则。这个是缺省。

24.日期格式函数
select 'P'||to_char(current_date,'YYYYMMDD')||'01'

25.产生组
Create Group 组名称

26.修改用户归属组
Alter Group 组名称 add user 用户名称

26.为组赋值权限
?
grant 操作 On 表名称 to group 组名称:

27.创建角色
Create Role 角色名称

28.删除角色
Drop Role 角色名称

29.获得当前postgresql版本
SELECT version();

30.在linux中执行计划任务
通过crontab执行
su root -c "psql -p 5433 -U developer MTPS -c'select test()'"
developer用户的密码存储于环境变量PGPASSWORD中。

31.查询表是否存在
select * from pg_statio_user_tables where relname='你的表名';

32.为用户复制SCHEMA权限
grant all on SCHEMA 作用域名称 to 用户名称

33.整个数据库导出
pg_dumpall -D -p 端口号 -h 服务器IP -U postgres(用户名) > /home/xiaop/all.bak

34.数据库备份恢复

psql -h 192.168.0.48 -p 54

33 -U postgres
35.当前日期函数
current_date

36.返回第十条开始的5条记录
select * from tabname limit 5 offset 10;

37.为用户赋模式权限
Grant on schema developer to UDataHouse

38.将字符转换为日期时间
select to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss')

39.数据库备份
pg_dumpall -h 192.168.0.4 -p 5433 -U postgres >/DataBack/Postgresql2010012201.dmp
如8.1以后多次输入密码

40.\dn
查看schema

41.删除schema
drop schema _clustertest cascade;

42.导出表

./pg_dump -p 端口号 -U 用户 -t 表名称 -f 备份文件位置 数据库 ;

43.字符串操作函数
select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2));

44.删除表主键
alter table 表名 drop CONSTRAINT 主键名称;

45.创建表空间
create tablespace 空间名称 location '路径'

46.查看表结构
select * from information_schema.columns?

?


./postgres -D /usr/local/src/data
or
./pg_ctl -D /usr/local/src/data -l logfile start

47.查看数据库大小
SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize;

48.查看数据库表大小
SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize,
pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize

49.设置执行超过指定秒数的sql语句输出到日志
log_min_duration_statement = 3

50.超过一定秒数sql自动执行执行计划
shared_preload_libraries = 'auto_explain'
custom_variable_classes = 'auto_explain'
auto_explain.log_min_duration = 4s

51.数据库备份

?select pg_start_backup('backup baseline');
?select pg_stop_backup();

?recovery.conf
?restore_command='cp /opt/buxlog/%f %p'

52.重建索引
?REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]
?INDEX
?重新建立声明了的索引。

?TABLE
?重新建立声明的表的所有索引。如果表有个从属的"TOAST"表,那么这个表也会重新索引。

?DATABASE
?重建当前数据库里的所有索引。 除非在独立运行模式下,会忽略在共享系统表上的索引(见下文)。

?SYSTEM
?在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 另外,除了是在单主机模式下,共享的系统表也会被忽略(见下文)。

?name
?需要重建索引的索引,表或者数据库的名称。 表和索引名可以有模式修饰。 目前,REINDEX DATABASE
和 REINDEX SYSTEM 只能重建当前数据库的索引, 因此其参数必须匹配当前数据库的名字。

?FORCE
?这是一个废弃的选项,如果声明,会被忽略。


54.数据字典查看表结构
SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train';

?


52.查看被锁定表
SELECT pg_class.relname AS table, pg_database.

datname AS database, pid, mode, granted
FROM pg_locks, pg_class, pg_database
WHERE pg_locks.relation = pg_class.oid
AND pg_locks.database = pg_database.oid;

53.查看客户端连接情况

SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity;

54.判断字符是否全部为数字
select * from t_c_username where length(username)=11 and substr(username,1,11) SIMILAR TO '[0-9]+';


55.查看客户端编码
show client_encoding;



1.安装postgresql
yum install postgresql postgresql-server
mysql占用端口3306 pgsql是5432

2.导入整个数据库
psql -U postgres(用户名) 数据库名(缺省时同用户名) < /data/dum.sql
psql -U postgres winCT
3.导出整个数据库
pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) >/data/dum.sql
pg_dump -h 172.16.26.71 -U postgres winCT >test.sql
pg_dump -h 172.16.22.5 -U postgres winCT >winct.sql

4.导出某个表
pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) -t table(表名) >/data/dum.sql

5.压缩方法
一般用dump导出数据会比较大,推荐使用xz压缩
压缩方法 xz dum.sql 会生成 dum.sql.xz 的文件

6.xz压缩数据倒数数据库方法
xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)



PostgreSQL数据的导出导入

导出PostgreSQL数据库中的数据:
$ pg_dump -U postgres -f mydatabase.sql mydatabase

导入数据时首先创建数据库再用psql导入:
$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql


Postgresql数据库数据简单的导入导出
命令操作:
数据的导出:pg_dump -U postgres(用户名) (-t 表名) 数据库名(缺省时同用户名) > c:\fulldb.sql
数据的导入:psql -U postgres(用户名) 数据库名(缺省时同用户名) < C:\fulldb.sql
pgAdmin操作:
数据的导出:在库名上右击-->backup-->ok,即将数据保存到.backup文件中。
数据的导入:在库名上右击-->restore-->注意填写.backup文件的路径不能有空格-->ok



设置postgresql的客户端编码
字符集查看
查看
\encoding

postgres=# show client_encoding;

设置
postgres=# set client_encoding to 'utf8';










方法1:设置GBK
\encoding GBK
方法2:
export PGCLIENTENCODING=GBK

设置终端的编码为UTF8:
[postgres@dsc ~]$ export LANG=zh_CN.UTF8


[postgre@iss3984 ~]$ echo $LANG

测试一:服务器、客户端、语言环境一致的情况
[postgre@iss3984 ~]$ echo $LANG
en_US.UTF-8
daduxiong=# show client_encoding;
client_encoding
-----------------
UTF8
(1 row)

指定Postgresql会话的客户端编码:
postgres=# set client_encoding to 'utf8';
SET

相关文档
最新文档