
正文
python操作数据库pg,python操作数据库为什么要创建游标
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
对python来说mysql和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:
本文使用windows系统开发,未使用官网版本,选择psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe版,地址:
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的使用
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(插件)
相关问答
Q1: 安装 PyGreSQL-4.1.1 完成后 python 测试调用报错 (我用python 2.7)
你好:
可能是两种原因:
第一:该包依赖于其他的包;
第二:没有安装成功或者import的方式不对。
Q2: Python学哪个数据库
主流的关系型数据库:
1. MySQL:目前使用最广泛的开源、多平台的关系型数据库,支持事务、符合ACID、支持多数SQL规范。
2. SQL Server:支持事务、符合ACID、支持多数SQL规范,属于商业软件,需要注意版权和licence授权费用。
3. Oracle:支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,功能最强大、最复杂、市场占比最高的商业数据库。
4. Postgresql:开源、多平台、关系型数据库,功能最强大的开源数据库,需要Python环境,基于postgresql的time
scaleDB,是目前比较火的时序数据库之一。
非关系型数据库:
非关系型数据库也被称为nosql,作为关系型数据库的一个补充,能在特定场景和特点问题下发挥高效率和高性能。
常见的非关系型数据库类型有键值存储数据库和面向文档数据库。
键值存储数据库类似hash,通过key做添加、删除、查询、性能高,优势在于简单、易部署、高并发,主要产品有:
Redis:开源、Linux平台、key-value键值型nosql数据库,简单稳定,非常主流的、全数据in-momory,定位于快的键值型nosql数据库。
Memcaced:一个开源的、高性能的、具有分布式内存对象的缓存系统,通过它可以减轻数据库负载,加速动态的web应用。
面向文档数据库以文档的形式存储,每个文档是一系列数据项的集合,每个数据项有名称与对应的值,主要产品有:
MongoDB:开源、多平台、文档型nosql数据库,最像关系型数据库,定位于灵活的nosql数据库。适用于网站后台数据库、小文件系统、日志分析系统。
Q3: plpython3u判断sql是否查表
plpython3u是PostgreSQL数据库的一种编程语言,可以在其中编写Python程序来进行数据库操作。在Python程序中,可以使用psycopg2库进行与PostgreSQL数据库的交互。
判断SQL是否查表,可以通过判断SQL语句中是否包含“FROM”这个关键字来进行判断。如果SQL语句中包含了“FROM”关键字,那么就可以认为这个SQL语句是查询表的操作。
在使用plpython3u进行数据库操作时,可以使用psycopg2库提供的cursor对象的execute()方法来执行SQL语句。执行完SQL语句后,可以使用cursor对象的rowcount属性来获取SQL语句影响的行数。
需要注意的是,即使SQL语句没有查询任何表,也可能会有返回结果。例如,可以使用SELECT 1这个语句来测试数据库连接是否正常。这个语句不查询任何表,但是会返回一个结果集,这个结果集中只有一行一列,值为1。
总之,通过判断SQL语句中是否包含“FROM”关键字,可以初步判断这个SQL语句是否是查询表的操作。但是,需要具体情况具体分析,不能仅凭这个来判断。
Q4: PG数据库用python操作,插入数据values中怎么填变量?
你可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。
DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。
Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Q5: Python中os.system登录postgres数据库时为什么不需要密码?
这是postgresql数据库的trust认证设计,即任意os用户无需密码就可以获得postgresql数据库管理员权限,不检查os用户名,用户组。这被很多程序员认为是PG数据库的一个安全漏洞。
可以通过配置pg_hba.conf和pg_ident.conf文件禁止os用户以trust认证方式登录。
关于python操作数据库pg和python操作数据库为什么要创建游标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








