Python 数据库

环境: ubuntu1404, python3.4
python可以操作多种数据库,如SQLite、MySql、PostgreSQL等.
本文针对自己所使用的PostgreSQL数据进行介绍。

1. 1. 安装PostgreSQL模块接口,其中PsyCopg对python开发框架的兼容性很好,就以psycopg2为例,
首先安装postgresql:
a.添加postgresql源:
$ sudo touch /etc/apt/sources.list.d/pgdb.list
$ sudo vim /etc/apt/sources.list.d/pgdb.list
加入以下到pgdb.list文件中:deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
b.执行下面的命令添加postgresql安装包的秘钥:
$ sudo wget --quiet -O - https://postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
c.安装:$ sudo apt-get update && sudo apt-get install postgresql-9.4
d.修改数据库密码:打开客户端工具: $ sudo -u postgres psql  
  修改密码并退出:ALTER USER postgres WITH PASSWORD '1';\q
使用pgadmin3 创建数据库。
最后python安装:$ pip3 install psycopg2

2.psycopg2的重要的的模块例程.

2.1 psycopg2.connect
con=psycopg2.connect(database="test", user="postgres",password="1", host="localhost") #打开一个连接到PostgreSQL数据库。如果成功打开数据库时,它返回一个连接对象
2.2 psycopg2.connect.cursor
cur = con.cursor()#创建一个光标将用于整个数据库使用Python编程
2.3 psycopg2.connect.cursor.execute#执行SQL语句
cur.execute('CREATE DATABASE ' + dbms_name)
cur.execute('CREATE TABLE pointcloud(index varchar(100), materialpath varchar(100), x varchar(100), y varchar(100), z varchar(100));')
2.4 fetchone()
cur.execute("select user,为assword from user where user='%s'" %name)#
cur.fetchone() #返回单个的元组,也就是一条记录(row),如果没有结果 , 则返回 None
2.5 fetchall()
cur.fetchall() #返回全部元组,即返回多条记录(rows),如果没有结果,则返回None
2.6 cur.copy_from(file, table, sep='\t', null='\\N', size=8192, columns=None):从文件中读取数据,将它们附加到名为表中,
file:类似于文件对象的东西来读取数据,必须同时拥有read()和readline()方法
table:将要复制到的表格的名字          
sep:文件中的列分隔
null:null的文本表示                         
size:用于从文件读取的缓冲区的大小
eg. cur.copy_from(stringEmpty, 'emptyspace', sep=' ', columns=('materialpath', 'x', 'y', 'z', 'leafSize') )
2.7 cur.copy_to(file, table, sep='\t', null='\\N', columns=None):将表的内容写入像文件一样的文件中
2.8 connection.commit()
#此方法提交当前事务。如果不调用这个方法,无论做了什么修改,自从上次调用commit()是不可见的,从其他的数据库连接。
2.9 con.close() #用于关闭连接,以防止下面紧接着有另外的查询会产生冲突的

3. excute()中的一些操作:

3.1 创建数据库: cur.execute('CREATE DATABASE ' + dbms_name)
3.2 创建表格: cur.execute('CREATE TABLE pointcloud(index varchar(100), materialpath varchar(100), x varchar(100), y varchar(100), z varchar(100));')
3.3 在表格中插入内容: cur.execute("INSERT INTO pointcloud (index, materialpath, x, y, z) VALUES (1,'2322',2.23,1.45,4.25)");
3.4 选取表格中内容: cur.execute('SELECT materialpath,x,y,z FROM pointcloud;')
之后返回全部元组: rows = cur.fetchall()
for row in rows: row[0],row[1],row[2],row[3]分别是materialpath,x,y,z
3.5 更新操作: cur.execute("UPDATE COMPANY set x = 2.50 where index=1")
3.6 删除操作: cur.execute("DELETE from pointcloud where ID=2;")

PgAdmin是访问PostgreSQL数据库的图形化工具

PgAdmin的安装: $  sudo apt-get install pgadmin3                运行:  pgadmin3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值