PostgreSQL命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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