- 浏览: 3460960 次
- 性别:
- 来自: 珠海
-
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
PostgreSQL新手入门http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
windows 2003安装问题:
1. problem running post install setup
安装路径权限问题,配置Users的权限为完全控制,就可以了.
两个配置文件:
sudo gedit /var/lib/pgsql/9.3/data/postgresql.conf
sudo gedit /var/lib/pgsql/9.3/data/pg_hba.conf
启动:sudo systemctl restart postgresql-9.3.service
pgAdmin 使用总结及postgreSQL常用操作 http://blog.sina.com.cn/s/blog_6d2bb4da0100xh6n.html
创建表空间:你创建表空间的用户是postgres,那么,在修改此目录的控制权限的时候
sudo mkdir /var/tablespace
sudo chown -R postgres:postgres /var/tablespace
su postgres
psql test;
CREATE TABLESPACE tablespacename OWNER postgres LOCATION '/var/tablespace';
创建数据库
su postgres 登陆用户,如果不存在可以创建
createdb test 创建数据库
psql test 切换到test数据库
CREATE ROLE testuser WITH SUPERUSER LOGIN PASSWORD 'test'; 创建角色
CREATE USER kanon PASSWORD 'kanon2'; 创建账户 CREATE USER除了默认具有LOGIN权限之外,其他与CREATE ROLE是完全相同的。
psql -h localhost -U testuser test 测试账户
使用模板template0创建数据库两种方法
(1)createdb -T template0 dbname
(2)create database dbname template=template0
CREATE DATABASE aaaa WITH ENCODING='UTF8' OWNER=testuser TEMPLATE=template0 CONNECTION LIMIT=10 TABLESPACE=tablespacename;
创建数据库是指定表空间:
CREATE DATABASE dbname OWNER kanon TEMPLATE template1 TABLESPACE tablespacename;
备份恢复工具
Barman 1.4.0 发布,PostgreSQL 备份和恢复管理器 http://www.oschina.net/news/59146/barman-1-4-0
备份和恢复PostgreSQL数据库 http://publish.it168.com/2005/0825/20050825099001.shtml
PostGresql 备份和恢复 http://zwb8686.blog.51cto.com/982393/1140172
PgSql备份pg_dump与还原手记pg_restorehttp://www.cnblogs.com/wangbin/archive/2009/08/14/1546009.html
//////备份:
pg_dump -h localhost -p 5432 -U testuser test>pandy_test.bak
pg_dump -h 192.168.0.198 -p 5432 -b -c -C -Fc -U postgres rhcpm_dev4>/home/pandy/rhcpm_dev4.backup //-Fc之间有没有空格, 好像都一样.
/////恢复:
I:
pg_restore -h 192.168.2.102 -p 5432 -U postgres -W -d rhcpm_dev4 -v /home/pandy/桌面/rhcpm_dev4-2015-06-19_172242.backup
II:
\set ON_ERROR_STOP
psql -h localhost -p 5432 -U testuser test<pandy_test.bak
数据从服务器复制到本地数据库
自己些的代码
export date_str=$(date "+%Y-%m-%d_%H%M%S")
echo $date_str
pg_dump -h 192.168.0.167 -p 5432 -b -c -C -Fc -U postgres rhcpm_dev4>/home/pandy/桌面/rhcpm_dev4-"$date_str".backup;
pg_restore -h 192.168.2.102 -p 5432 --if-exists -c -U postgres -W -d rhcpm_dev4 -v /home/pandy/桌面/rhcpm_dev4-"$date_str".backup;
pgadminIII工具看到的代码:
export date_str=$(date "+%Y-%m-%d_%H%M%S")
echo $date_str
pg_dump --host 192.168.0.5 --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --verbose --file "/home/pandy/桌面/rhcpm_saas-$date_str.backup" "rhcpm_saas"
pg_restore --host 192.168.0.5 --port 5432 --username "postgres" --dbname "rhcpm_saas_test" --role "postgres" --no-password --verbose "/home/pandy/桌面/rhcpm_saas-$date_str.backup"
自动备份
Windows http://www.oschina.net/question/100267_71299
PostgreSQL自动备份的批处理文件 http://blog.csdn.net/adeng1919/article/details/13022859
PostgreSQL自动备份(backup)与恢复(restore)数据库(图解)https://xly3000.wordpress.com/2012/03/07/postgresql%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BDbackup%E4%B8%8E%E6%81%A2%E5%A4%8Drestore%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%BE%E8%A7%A3/
Linux http://mlm.iteye.com/blog/1129709
序列
postgresql 创建序列方法_postgresql create sequence http://www.jsjtt.com/shujuku/postgresql/32.html
PostgreSQL 序列(SEQUENCE) http://www.cnblogs.com/mchina/archive/2013/04/10/3012493.html
PostgreSQL 8.1 序列操作函数 http://www.php100.com/manual/PostgreSQL8/functions-sequence.html
-- DROP SEQUENCE seq_user_id;
CREATE SEQUENCE seq_user_id INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
ALTER TABLE seq_route_id OWNER TO postgres;
查找所有数据库
SELECT datname FROM pg_database;
查找所有用户表
SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;
查找表的所有字段
postgres查询表中所有字段、主键、唯一、外键、是否为空
日期格式化
SELECT to_char(CURRENT_DATE,'yyyy-MM-dd hh24:MI:ss')
查找时间
SELECT current_date,current_time
当前时间
SELECT now()
插入时间
INSERT INTO _sequence_table(create_date) VALUES (DATE '2001-02-16');
时间日期
SELECT TIMESTAMP '2001-02-16 20:38:40';
创建日期时间类型和保存方式
create_datetime timestamp without time zone,
to_timestamp('2013-05-20 18:29:42','yyyy-mm-dd hh24:mi:ss')
替换
replace(tablename, 'tb_', '')
windows 2003安装问题:
1. problem running post install setup
安装路径权限问题,配置Users的权限为完全控制,就可以了.
两个配置文件:
sudo gedit /var/lib/pgsql/9.3/data/postgresql.conf
sudo gedit /var/lib/pgsql/9.3/data/pg_hba.conf
启动:sudo systemctl restart postgresql-9.3.service
pgAdmin 使用总结及postgreSQL常用操作 http://blog.sina.com.cn/s/blog_6d2bb4da0100xh6n.html
创建表空间:你创建表空间的用户是postgres,那么,在修改此目录的控制权限的时候
sudo mkdir /var/tablespace
sudo chown -R postgres:postgres /var/tablespace
su postgres
psql test;
CREATE TABLESPACE tablespacename OWNER postgres LOCATION '/var/tablespace';
创建数据库
su postgres 登陆用户,如果不存在可以创建
createdb test 创建数据库
psql test 切换到test数据库
CREATE ROLE testuser WITH SUPERUSER LOGIN PASSWORD 'test'; 创建角色
CREATE USER kanon PASSWORD 'kanon2'; 创建账户 CREATE USER除了默认具有LOGIN权限之外,其他与CREATE ROLE是完全相同的。
psql -h localhost -U testuser test 测试账户
使用模板template0创建数据库两种方法
(1)createdb -T template0 dbname
(2)create database dbname template=template0
CREATE DATABASE aaaa WITH ENCODING='UTF8' OWNER=testuser TEMPLATE=template0 CONNECTION LIMIT=10 TABLESPACE=tablespacename;
创建数据库是指定表空间:
CREATE DATABASE dbname OWNER kanon TEMPLATE template1 TABLESPACE tablespacename;
备份恢复工具
Barman 1.4.0 发布,PostgreSQL 备份和恢复管理器 http://www.oschina.net/news/59146/barman-1-4-0
备份和恢复PostgreSQL数据库 http://publish.it168.com/2005/0825/20050825099001.shtml
PostGresql 备份和恢复 http://zwb8686.blog.51cto.com/982393/1140172
PgSql备份pg_dump与还原手记pg_restorehttp://www.cnblogs.com/wangbin/archive/2009/08/14/1546009.html
//////备份:
pg_dump -h localhost -p 5432 -U testuser test>pandy_test.bak
pg_dump -h 192.168.0.198 -p 5432 -b -c -C -Fc -U postgres rhcpm_dev4>/home/pandy/rhcpm_dev4.backup //-Fc之间有没有空格, 好像都一样.
/////恢复:
I:
pg_restore -h 192.168.2.102 -p 5432 -U postgres -W -d rhcpm_dev4 -v /home/pandy/桌面/rhcpm_dev4-2015-06-19_172242.backup
II:
\set ON_ERROR_STOP
psql -h localhost -p 5432 -U testuser test<pandy_test.bak
数据从服务器复制到本地数据库
自己些的代码
export date_str=$(date "+%Y-%m-%d_%H%M%S")
echo $date_str
pg_dump -h 192.168.0.167 -p 5432 -b -c -C -Fc -U postgres rhcpm_dev4>/home/pandy/桌面/rhcpm_dev4-"$date_str".backup;
pg_restore -h 192.168.2.102 -p 5432 --if-exists -c -U postgres -W -d rhcpm_dev4 -v /home/pandy/桌面/rhcpm_dev4-"$date_str".backup;
pgadminIII工具看到的代码:
export date_str=$(date "+%Y-%m-%d_%H%M%S")
echo $date_str
pg_dump --host 192.168.0.5 --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --verbose --file "/home/pandy/桌面/rhcpm_saas-$date_str.backup" "rhcpm_saas"
pg_restore --host 192.168.0.5 --port 5432 --username "postgres" --dbname "rhcpm_saas_test" --role "postgres" --no-password --verbose "/home/pandy/桌面/rhcpm_saas-$date_str.backup"
自动备份
Windows http://www.oschina.net/question/100267_71299
PostgreSQL自动备份的批处理文件 http://blog.csdn.net/adeng1919/article/details/13022859
@ECHO OFF echo 正在初始化环境变量. . . echo. :: 对于路径中有空格的路径字符串,需要加上英文双引号包裹!否则就会出现命令错误! set POSTGRESQL_DIR="C:\PostgreSQL\9.3\bin" set DB_NAME=rhcpm_dev4 set USER="postgres" :: 数据库管理系统名 set DBMS_NAME=PostgreSQL set SV_IP="192.168.0.167" set SV_PORT="5432" set DBBAK_DIR="C:\PostgreSQL\pg_db_bak" set CMD_STR="-b -c -C -Ft -U" :: PostgreSQL的pg_dump命令行工具没有带密码的参数,但是可以设置一个PGPASSWORD的环境变量来提供密码 set PGPASSWORD=1 echo 正在备份数据库. . . echo. :: 以下是获得当前系统时间的命令,e.g. 20120503101305 :: 年 set myyy=%date:~0,4% :: 月 set mymm=%date:~5,2% :: 日 set mydd=%date:~8,2% ::echo %myyy% %mymm% %mydd% set /a TODAY=%date:~0,4%%date:~5,2%%date:~8,2% set _TIME=%time:~0,8% ::echo %_TIME% set CURRENTTIME=%_time::=% set CURRENTTIME=%CURRENTTIME: =0% ::set MYDATETIME=%TODAY%-%CURRENTTIME% ::set MYDATETIME=%TODAY%-%_TIME% ::set MYDATETIME=%myyy%-%mymm%-%mydd%_%CURRENTTIME% set MYDATETIME=%TODAY%_%CURRENTTIME% D: cd %POSTGRESQL_DIR% :: 使用PostgreSQL提供的pg_dump命令将具体数据库导出为.sql文件 %POSTGRESQL_DIR%\pg_dump.exe -h %SV_IP% -p %SV_PORT% -b -c -C -Ft -U %USER% %DB_NAME%>%DBBAK_DIR%\%DB_NAME%_%MYDATETIME%.backup echo 备份结束 echo exit
PostgreSQL自动备份(backup)与恢复(restore)数据库(图解)https://xly3000.wordpress.com/2012/03/07/postgresql%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BDbackup%E4%B8%8E%E6%81%A2%E5%A4%8Drestore%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%BE%E8%A7%A3/
Linux http://mlm.iteye.com/blog/1129709
序列
postgresql 创建序列方法_postgresql create sequence http://www.jsjtt.com/shujuku/postgresql/32.html
PostgreSQL 序列(SEQUENCE) http://www.cnblogs.com/mchina/archive/2013/04/10/3012493.html
PostgreSQL 8.1 序列操作函数 http://www.php100.com/manual/PostgreSQL8/functions-sequence.html
-- DROP SEQUENCE seq_user_id;
CREATE SEQUENCE seq_user_id INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
ALTER TABLE seq_route_id OWNER TO postgres;
查找所有数据库
SELECT datname FROM pg_database;
查找所有用户表
SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;
查找表的所有字段
SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull from pg_class c,pg_attribute a,pg_type t where c.relname='rh_dimension' and a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid
postgres查询表中所有字段、主键、唯一、外键、是否为空
select 'true' as list,'true' as edit,'false' as search,a.attname as column_name,format_type(a.atttypid,a.atttypmod) as data_type, (case when atttypmod-4>0 then atttypmod-4 else 0 end)data_length, (case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='p')>0 then 'Y' else 'N' end) as P, (case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='u')>0 then 'Y' else 'N' end) as U, (case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='f')>0 then 'Y' else 'N' end) as R, (case when a.attnotnull=true then 'Y' else 'N' end) as nullable, col_description(a.attrelid,a.attnum) as comment,'XEditText' as control from pg_attribute a where attstattarget=-1 and attrelid = (select oid from pg_class where relname ='userinfo')
日期格式化
SELECT to_char(CURRENT_DATE,'yyyy-MM-dd hh24:MI:ss')
查找时间
SELECT current_date,current_time
当前时间
SELECT now()
插入时间
INSERT INTO _sequence_table(create_date) VALUES (DATE '2001-02-16');
时间日期
SELECT TIMESTAMP '2001-02-16 20:38:40';
创建日期时间类型和保存方式
create_datetime timestamp without time zone,
to_timestamp('2013-05-20 18:29:42','yyyy-mm-dd hh24:mi:ss')
替换
replace(tablename, 'tb_', '')
发表评论
-
全局唯一ID设计方案
2016-06-28 09:42 1260在分布式系统中,经常需要使用全局唯一ID查找对应的数据。产生这 ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2016-06-27 17:34 3034http://my.oschina.net/zx0211/bl ... -
按周,按月,按日,按小时分组统计数据
2016-06-27 17:07 3303http://my.oschina.net/mjRao/blo ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句区别
2016-06-27 16:27 1043http://my.oschina.net/MiniBu/bl ... -
CitusDB logo基于 PostgreSQL 的集群数据库 CitusDB
2016-06-20 11:43 1103http://www.oschina.net/p/citusd ... -
MYSQL级联查询,包括向上向下的级联
2016-05-31 11:47 2280http://my.oschina.net/u/178116/ ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1570http://my.oschina.net/wjme/blog ... -
MySQL全文索引
2016-05-11 17:21 1017MySQL全文索引Match Against与Like比较 h ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3493http://www.guokr.com/blog/47576 ... -
Druid使用起步—在javaWeb项目中配置监控
2016-05-06 11:41 3294Druid使用起步—在javaWeb项目中配置监控: http ... -
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现
2016-04-27 16:37 1102原文;http://www.blogjava.net/zuxi ... -
用Haproxy来做PostgreSQL的负载均衡
2016-04-22 09:48 1633http://my.oschina.net/Kenyon/bl ... -
MySQL的root密码重置
2016-04-14 10:29 991http://my.oschina.net/shawnplay ... -
分布式事务管理
2016-03-31 16:43 1062http://my.oschina.net/pingpangk ... -
基于 PostgreSQL 的集群数据库 CitusDB
2016-03-25 10:24 2471http://www.oschina.net/p/citusd ... -
shell中读写mysql数据库
2016-03-13 15:32 1425http://mingxinglai.com/cn/2013/ ... -
PostgreSQL In BigData 大数据Postgresql
2016-03-10 10:00 19951.BigSQL (整合了pg和hadoop的一个开源项目) ... -
MySQL管理客户端 Adminer
2016-02-14 10:31 1581http://www.oschina.net/p/admine ... -
PostgreSQ 表的继承和分区
2016-01-08 15:02 1230PostgreSQL分区表(Table Partitionin ... -
利用系统缓存提高PostgreSQL操作效率
2015-12-17 09:01 1228http://my.oschina.net/Suregogo/ ...
相关推荐
### PostgreSQL多行记录合并与拆分 在处理数据库时,我们常常会遇到需要将多行数据合并成一行或把一行中的某列数据拆分成多行的情况。本文将详细介绍如何使用PostgreSQL来实现这两种操作。 #### 多行记录合并成一...
**cpp-pgAudit开源PostgreSQL审核记录** 在PostgreSQL数据库管理系统中,审计是确保数据安全性、合规性和追踪操作的关键功能。pgAudit是一个重要的开源扩展,它提供了强大的审计能力,允许数据库管理员详细记录会话...
不过,Bucardo 中的同步都是异步的,它是通过触发器记录变化,甚至可以以 PostgreSQL 为源库,可以和 Oracle、MySQL、MongoDB 等很多数据库进行数据异步同步。 二、搭建前准备 在开始搭建 Bucardo 之前,需要满足...
PostgreSQL 中的存储过程可以使用函数来实现,函数可以封装一组 SQL 语句,以便于重复使用和提高效率。在 .NET 中,可以使用 Npgsql 组件来连接 PostgreSQL 数据库,并使用函数来查询数据。本文详细介绍了 ...
在PostgreSQL中,每个数据页(堆或索引)都标记有影响该页的最新XLOG记录的LSN(日志序列号)。当缓冲管理器准备将一个脏页写到磁盘时,它必须确保日志已经被至少刷新到该页的LSN所指示的位置。这样的底层交互提高了...
由于 PostgreSQL 需要确保数据的完整性和安全性,NTFS 提供了更可靠的日志记录功能以及更全面的访问控制机制。FAT 和 FAT32 文件系统无法提供这些特性,因此不建议使用它们。 - **原因分析**: - 数据完整性:...
- 参考手册提供了详细的使用指南,帮助用户了解和掌握PostgreSQL的使用。 总的来说,PostgreSQL凭借其强大的功能、丰富的数据类型支持和活跃的开发社区,已成为世界上最先进的自由软件数据库管理系统之一。尽管...
配置方面,PostgreSQL使用`postgresql.conf`文件进行全局设置,包括内存使用、日志记录、网络连接等。此外,`pg_hba.conf`文件用于定义访问控制规则,以决定哪些用户或主机可以连接到数据库。 在数据库管理中,...
- **输入输出参数 (INOUT)**:MS SQL Server 支持使用 `@variable OUTPUT` 定义输入输出参数,而 PostgreSQL 使用 `INOUT` 关键字。 #### 返回结果集的函数 - **MS SQL Server** 支持通过 `SELECT` 语句直接返回...
这里只记录PostgreSQL相关操作,项目创建过程不详细介绍,类似流程可参考文章从零开始初始化后台项目>>(https://blog.csdn.net/lxh_worldpeace/article/details/105544270)。PostgreSQL数据库使用文章案例:Mac系统...
通过深入学习“PostgreSQL 9 从零开始学”这本书,你可以逐步熟悉PostgreSQL的使用,无论是进行日常的数据存储,还是开发复杂的数据库应用,都将变得更加得心应手。记得实践是检验真理的唯一标准,理论学习的同时,...
在深入探讨PostgreSQL之前,我们首先需要理解数据库的基本概念。PostgreSQL是一款开源的关系型数据库管理系统(RDBMS),以其...通过学习这些内容,我们可以更有效地使用和定制PostgreSQL,以满足各种复杂业务需求。
- **触发器**:设置触发器,自动执行特定操作,如数据验证、日志记录等。 - **分区表**:使用分区技术,提高大数据量查询性能。 - **事务处理**:理解事务的概念,以及如何控制事务的ACID属性。 - **并发控制**:...
综上所述,PostgreSQL官方文档不仅覆盖了基础的数据库管理和SQL语言使用,还深入探讨了许多高级特性和最佳实践,为初学者和专业人士提供了全面的学习资源。无论是希望了解PostgreSQL的基本操作还是深入研究其复杂...
为了提高数据访问效率并减少磁盘I/O操作,PostgreSQL使用了一个共享的缓冲池。该缓冲池被所有服务器进程共享,用于存储从磁盘读取的数据页面,以供后续重复使用。 ##### 缓冲池概述 - **缓冲池组成**:每个缓冲区...
综上所述,优化PostgreSQL中的LIKE模糊查询涉及多种策略,包括使用全文搜索、相似度查询、优化索引结构以及调整查询计划。针对具体的应用场景和数据特性,结合这些方法,可以显著提升查询效率,降低数据库的负载,...
本文将深入探讨如何使用SQL语句在PostgreSQL中高效地插入客户记录和订单记录,以及相关的最佳实践。 首先,让我们理解基本的SQL插入语句结构。在PostgreSQL中,`INSERT INTO`语句用于向表中添加新行。假设我们有两...
如果存在安装记录,则应首先卸载它。此外,还需要确保删除与PostgreSQL相关的用户,以避免后续问题。 ```bash ps -ef | grep postgres ``` 如果命令行显示了与PostgreSQL相关的进程,则表示PostgreSQL已安装在系统...
PostgreSQL使用`readline`库来处理用户在终端输入的SQL语句,使其具有历史记录、编辑和补全等功能。安装`readline-devel`是为了编译PostgreSQL时能链接到`readline`库: ```bash sudo yum install -y readline-...