使用python进行PostgreSQL 数据库连接

PostgreSQL 数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用。运用python可以很简单的建立PostgreSQL 数据库连接,其中最受欢迎的就是psycopg。

安装psycopg2

Psycopy是针对python的Postgres 数据库的适配模块,安装psycopg2可以整合python和Postgres 。使用cmd输入命令进行安装:

 pip install psycopg2

也可以在pycharm中查找psycopg2安装包:在这里插入图片描述

连接数据库

在pycharm中选择Database,点击左上角的+添加数据库,选择postgresql:
创建数据库连接后点击apply,数据库会显示在右侧窗格中。

在这里插入图片描述

下面使用 psycopy2.connect()方法连接到postgresql数据库。通过调用cursor类中的execute()方法对数据库进行操作。在execute()中用SQL语句创建表。使用commit()将数据发送到数据库服务器,最后使用close()关闭数据库。commit()能够对数据库进行改变,且不可逆。

connect() 方法的参数一般包括:

  • database: 要连接的数据库名称
  • user:连接数据库的用户名
  • password: 连接数据库的密码
  • host: 数据库端口的地址,一般为 “localhost”,或者主机的IP地址
  • port: 门户 默认为5432.

在这里插入图片描述
在这里插入图片描述

在数据库中创建新的表

使用SQL(Structured Query Language)语句CREATE TABLE添加新的表:

import psycopg2
#建立数据库连接
con = psycopg2.connect(database="postgres", user="postgres", password="123456", host="localhost", port="5432")
#调用游标对象
cur = con.cursor()
#用cursor中的execute 使用DDL语句创建一个名为 STUDENT 的表,指定表的字段以及字段类型
cur.execute('''CREATE TABLE STUDENT
      (ADMISSION INT PRIMARY KEY     NOT NULL,
      NAME           TEXT            NOT NULL,
      AGE            INT             NOT NULL,
      COURSE        CHAR(50),
      DEPARTMENT        CHAR(50));''')


#提交更改,增添或者修改数据只会必须要提交才能生效
con.commit()
con.close()

在数据库表中插入数据

使用INSERT INTO 在以经生成的表中插入数据

#在表中插入一条数据
cur.execute("INSERT INTO STUDENT (ADMISSION,NAME,AGE,COURSE,DEPARTMENT) VALUES (3420, 'John', 18, 'Computer Science', 'ICT')");

在Database中可以查看添加的数据
在这里插入图片描述

从数据库取回数据

使用fetchall()取回数据,SQL语句定义选择的字段

cur.execute("SELECT admission, name, age, course, department from STUDENT")
rows = cur.fetchall()

for row in rows:
    print("ADMISSION =", row[0])
    print("NAME =", row[1])
    print("AGE =", row[2])
    print("COURSE =", row[3])
    print("DEPARTMENT =", row[4], "\n")

print("Operation done successfully")
con.close()

更新表数据

同样使用SQL语句更新目标字段,使用commit()更新数据库

cur.execute("UPDATE STUDENT set AGE = 20 where ADMISSION = 3420")
print("Total updated rows:", cur.rowcount)
con.commit()

更新后的数据库:在这里插入图片描述

删除表数据

cur.execute("DELETE from STUDENT where ADMISSION=3420;")
con.commit()

删除后的表格:在这里插入图片描述

总结

使用python连接数据库的方法大体一致,同样的方法可以连接到MySQL,SQLserver,Oracle等等数据库。SQLite的连接方法也与其相似,且由于python内置了SQLite,使用更加简便。

一般连接数据库的步骤为:

  • 使用connect 对象建立连接
  • 使用cursor()游标对象
  • 调用execute()方法,书写SQL语句
  • 抓取数据
  • 使用commit()提交数据
  • 使用close()关闭连接

用于连接到MySQL需要安装的模块有MySQL connector pythonMySQLdb ,
MySQL connector python 下载地址:https://www.mysql.com/downloads/
或使用命令安装:

pip install mysql-connector-python

MySQLdb 是用于Python链接Mysql数据库的接口,下载地址 https://sourceforge.net/projects/mysql-python/

在这里插入图片描述
Python数据库接口及API可以查找所使用的的数据库对应的模块。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐