PostgreSQL是一款开源、免费的数据库,其优势在于SQL标准的完备性、对于事务的支持、对于事务隔离级别的支持,以及数据类型、内置函数、索引的扩展性都很好。
下载并安装PostgreSQL
在Windows系统下,下载并安装PostgreSQL的具体流程如下。
(1)在百度中搜索PostgreSQL官网,在官网首页单击“Downloads”链接进入下载界面,如图所示。
(2)单击下方的“Windows”链接弹出Windows系统的下载界面,如图所示。
(3)单击“Download the installer”链接,在弹出的页面中选择安装的PostgreSQL的版本和安装的操作系统版本,单击“DOWNLOAD NOW”按钮即可下载,如图所示。
(4)下载完成后得到一个“.exe”格式的运行文件,双击该文件后开始安装。注意,需要先安装微软的Visual C++,如图所示。
(5)在弹出的“Setup”界面中,单击“Next”按钮。
(6)在弹出的“Installation Directory”界面中选择安装路径,单击“Next”按钮。
(7)在弹出的“Select Components”界面中选择要安装的组件,单击“Next”按钮。
(8)在弹出的“Data Directory”界面中选择数据的保存路径,单击“Next”按钮。
(9)在弹出的“Password”界面中设置数据库的密码,单击“Next”按钮。
(10)在弹出的“Port”界面中设置数据库使用的端口,单击“Next”按钮。
(11)在弹出的“Advanced Options”界面中设置本地语言为简体中文,单击“Next”按钮。
(12)连续单击“Next”按钮,一直到弹出安装成功的界面,如图所示。整个安装过程大约需要2min。
使用psycopg2模块
与MySQL数据库不同,Postgres至少包含3种Python适配器驱动——psycopg
、PyPgSQL
和PyGreSQL
。另外一种适配器PoPy目前已废弃,于2003年将其项目与PyGreSQL进行了合并。目前剩下的这3种适配器都有自己的特性和优缺点,建议开发者根据实际项目进行选择。
注意,PyPgSQL自2006年起就不再开发了,而PyGreSQL则是在2009年发布的最新版本(4.0)。这两种适配器不再活跃,使得psycopg成为PostgreSQL适配器的唯一引领者。
在使用psycopg2之前需要先安装,具体安装命令如下。
pip install psycopg2
如图:
在Python程序中使用psycopg2
的基本流程如下。
(1)导入psycopg2。要使用psycopg2,必须先用import语句导入该包。
import psycopg2
(2)使用类connection进行连接。类connection表示数据库连接对象,由psycopg2.connect()方法创建。
(3)创建connection对象。通过内置方法psycopg2.connect()创建一个新的数据库会话,并且返回一个连接对象。该方法各个参数的具体说明如下。
- dbname:数据库名。
- user:数据库角色名。
- password:数据库角色的密码。
- host:数据库地址。
- port:端口。
(4)创建cursor对象。在psycopg2中提供了一个cursor类,用来在数据库Session中执行PostgreSQL命令。cursor对象由connection.cursor()方法创建,例如:
cur = conn.cursor()
在psycopg2模块中主要包含如下内置方法。
psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")
和指定的PostgreSQL数据库建立连接。如果成功建立连接,它返回一个连接对象。connection.cursor()
创建一个光标,将用于整个数据库中使用Python编程。cursor.execute(sql [, optional parameters])
执行SQL语句,可使用参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2的模块支持占位符(用%s标志),例如:
cursor.execute("insert into people values (%s, %s)", (who, age))
curosr.executemany(sql, seq_of_parameters)
对于所有参数序列或序列中的SQL映射执行SQL命令。curosr.callproc(procname[, parameters])
调用一个名为procname的存储过程。cursor.rowcount
这是一个只读属性,返回数据库中行的总数。connection.commit()
此方法提交当前事务。connection.rollback()
此方法会回滚自上次调用commit()方法的任何更改。connection.close()
此方法会关闭数据库连接。请注意,这并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有的更改将会丢失。cursor.fetchone()
用于提取查询结果集中的下一行,返回一个序列。cursor.fetchmany([size=cursor.arraysize])
取出下一组中查询结果的行数,返回一个列表。如果没有找到记录,则返回空列表。cursor.fetchall()
用于获取所有查询结果(剩余)行,返回一个列表。
下面的实例文件PostgreSQL01.py演示了使用Python程序连接指定PostgreSQL数据库的过程。
import psycopg2
def connectPostgreSQL():
conn = psycopg2.connect(database="mydb", user="postgres", password="66688888",
host="127.0.0.1", port="5432")
print('connect successful!')
if __name__ == '__main__':
connectPostgreSQL()
执行后会输出:
connect successful!
下面的实例文件PostgreSQL02.py演示了使用Python程序在PostgreSQL数据库中创建指定数据表的过程。
import os
import sys
import psycopg2
def connectPostgreSQL():
conn = psycopg2.connect(database="mydb", user="postgres", password="66688888",
host="127.0.0.1", port="5432")
print('connect successful!')
cursor = conn.cursor()
cursor.execute('''
create table public.member(
id integer not null primary key,
name varchar(32) not null,
password varchar(32) not null,
singal varchar(128)
)''')
conn.commit()
conn.close()
print('table public.member is created!')
if __name__ == '__main__':
connectPostgreSQL()
执行后会输出:
connect successful!
table public.member is created!
酷客网相关文章:
评论前必须登录!
注册