postgresqlpython3
Ⅰ postgresql 查看有哪些表
1. 查询表名称
在psql状态下查询表名称:dt
SQL方式查看表名称:
SELECTtablenameFROMpg_tables;
SELECT viewname FROM pg_views
WHERE schemaname ='public'
PostgreSQL获取数据库中所有view名视图
SELECT viewname FROM pg_views
WHERE schemaname ='public'
2. 查询表结构
在psql状态下查询表结构 dtablename
SQL方式查看表结构
SELECT a.attnum,
a.attname AS field,
t.typname AS type,
a.attlen AS length,
a.atttypmod AS lengthvar,
a.attnotnull AS notnull,
b.description AS comment
FROM pg_class c,
pg_attribute a
LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
pg_type t
WHERE c.relname = 'udoc_saldiscount'
and a.attnum > 0
and a.attrelid = c.oid
and a.atttypid = t.oid
ORDER BY a.attnum;
(1)postgresqlpython3扩展阅读:
PostgreSQL存储系统是由以下几个子模块所构成的:
1)页面管理子模块:对PostgreSQL缓冲区页面的组织结构进行定义以及提供页面操作的方法。
2)缓冲区管理子模块:管理PostgreSQL的缓冲区,包括本地缓冲区和共享缓冲区。
3)存储设备管理子模块:数据库记录是存储在存储介质上的,存储设备管理子模块将屏蔽不同物理存储设备(块设备,流设备)接口函数的差异,向上层缓冲区管理子模块提供统一的访问接口函数。
4)文件管理子模块:一般的操作系统对一个进程允许打开的文件数是有限制的,而PostgreSQL服务器有些时候需要打开的文件数是很多的,因此PostgreSQL文件管理子模块自身为了突破这个瓶颈,封装了文件的读写操作。
Ⅱ python postgresql 哪个好
python操作数据库PostgreSQL
1.简述
python可以操作多种数据库,诸如SQLite、MySql、PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前
项目中用到的PostgreSQL做一下简单介绍,主要包括python操作数据库插件的选择、安装、简单使用方法、测试连接数据库成功。
2.数据库操作插件的选择
PostgreSQL至少有三个python接口程序可以实现访问,包括PsyCopg、PyPgSQL、PyGreSQL(PoPy已经整合在PyGreSQL中),三个接口程序各有利弊,需要根据实践选择最适合项目的方式。
推荐使用PsyCopg,对python开发框架的兼容性都很好,本文中我们只讨论这个插件。
3.PsyCopg的下载
官网下载psycopg2-2.5.1.tar.gz:http://initd.org/psycopg/
本文使用windows系统开发,未使用官网版本,选择psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe版,地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys
4.PsyCopg的安装
直接exe,根据提示安装即可.
5.PsyCopg的使用
py文件代码:
__author__ = 'qiongmiaoer'
import psycopg2
# 数据库连接参数
conn = psycopg2.connect(database="platoon", user="postgres", password="postgres", host="192.168.10.80", port="5432")
cur = conn.cursor()
cur.execute("CREATE TABLE test(id serial PRIMARY KEY, num integer,data varchar);")
# insert one item
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (1, 'aaa'))
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (2, 'bbb'))
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (3, 'ccc'))
cur.execute("SELECT * FROM test;")
rows = cur.fetchall() # all rows in table
print(rows)
for i in rows:
print(i)
conn.commit()
cur.close()
conn.close()
可参考psycopg官方文档,介绍postgresql的使用
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries
6. 输出结果
"C:\Program Files (x86)\Python275\python.exe" E:/PycharmProjects/psycopgPyCharm/xiaoyu/temp.py
[(1, 1, 'aaa'), (2, 2, 'bbb'), (3, 3, 'ccc')]
(1, 1, 'aaa')
(2, 2, 'bbb')
(3, 3, 'ccc')
Process finished with exit code 0
7.分析
在插件psyCopg安装后,在python命令下import
psycopg2,即可使用psycopg2中的方法对数据库,根据测试结果的输出可以看到我们成功地连接到了数据库,创建了名为test的table,
添加了三条数据,并成功读取和输出数据,最后将查询到的数据输出print出来。
ps:
项目环境
windows8
python2.7.5
pyCharm2.7.3(开发环境)
psycopg2-2.4.2(插件)
Ⅲ MySQL 和 PostgreSQL 哪个更适合做金融数据库
金融数据库的需求:
高效存储和检索大量时间序列数据和横截面数据
这两个 数据库都能存储 时间序列数据, 但不是 最高效的。支持存储和检索大段文本数据
MySQL 和其他大部分关系型数据库的文本检索能力不强,用 LIKE 效率低,只能 硬匹配,PgSQL 提供全文检索功能 ( PgSQL 数据类型 包含 Text Search Types ),这是 PgSQL 很好的特性,可以充当轻量级搜索引擎。对R和Python有稳定高效的接口
MySQL 和 PgSQL 这方面都没问题, 但 如果是 Python3, PgSQL 的 psycopg2(毫无争议的就是这个adapter) 稳定高效, 而MySQL的 Python3 adapter 比较多,相对没有 Python2 的稳定或高效。具有一定存储和检索非结构化数据(例如图结构)的能力
一般情况下 图形结构不做转换是很难直接存到数据库的吧,我猜你说的非结构化数据 是树形结构吧,可以用 JSON 格式存储, MySQL 和 PgSQL 都提供 JSON 格式的存储功能,不同的是 MySQL 5.7 才有这个特性(当前最新版是5.7,也就是说近一两年才有的),而 PgSQL ( 当前最新版是9.6 ) 从 9.2 加入了 JSON Type, 这个特性至今已经相当成熟了。另外 JSON 格式不能满足你的话, PgSQL 还提供 XML 格式。
有好用易上手的GUI
Navicat 和 DataGrip 都支持 这两个数据库, 愿意花钱这个不是问题。
提供远程访问功能
远程访问,这么基本的功能肯定都有,就不用多说了吧
安全性高
这个不好说了, 看你们 DBA 和运维的实力咯(不过 MySQL 人好招)
数据库本身有能力处理复杂业务逻辑
MySQL 相对比较适合 简单粗暴的业务逻辑
PgSQL 处理复杂业务逻辑 有优势
综上, PgSQL 更适合。
Ⅳ python3.6安装psycopg
今天打算写一个定时写入数据库的Python测试程序,采用的数据库是postgresql,因此需要安装psycopg2。系统是windows的,安装中也出了一些乱七八糟的问题,究其原因还是本人第一次在windows下面安装python模块,对此类问题没有一个系统性的认识造成的。下面给出在此类安装中可能存在的一些问题的解决方法:
python模块的安装包最重要的就是setup.py,一般来说setup.py文件的使用如下:
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm
python是一种解释性语言,假如包里全为python文件其实拷贝到LIb\site-packages下基本就可以,setup.py无非也就是执行相关内容,然而对于包括一部分是C语言编写的安装包就会出现问题了。linux下面基本不存在问题,因为gcc编译支持非常好。在windows下面vc6,7,8,9,10,11,12,13之间兼容性都不好,而每一个Python版本对应一个vc的编译环境。比如python2.7默认会去找vc9.0的编译环境,但是现在装vs2008的已经不多了吧。如果没有VS90COMNTOOLS环境变量,安装就会有一个unable to find vcvarsall.bat错误解决方法有几个:
第一,安装mingw,编译时使用python setup.py build –compiler=mingw32;
第二,设置环境变量VS90COMNTOOLS,可以临时设置SET VS90COMNTOOLS=VS100COMNTOOLS vc10,SET VS90COMNTOOLS=VS110COMNTOOLS vc11。。。以此类推;
对于psycopg2则还需要先安装postgresql(似乎linux下可以只安装postgres-devel),另外需要把其bin目录设为环境变量,使其可以访问libpq.dll及其依赖库。设置了这些之后基本psycopg2就可以正常工作了,测试成功的标志就是import psycopg2 不出错就表示安装成功了。