import psycopg2
1、下面是连接数据库,进行查询的步骤
#连接一个给定的数据库
conn = psycopg2.connect(database="数据库名", user="连接数据库的用户名", password="用户名对应的密码", host="ip地址", port="端口号")
#建立游标,用来执行数据库操作
cursor = conn.cursor()
#执行SQL命令
cursor.execute("sql语句")
#提交sql命令
conn.commit()
# fetchone() :返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None
# fetchall() : 返回多个元组,即返回多个记录(rows),以列表套元组的形式,如果没有结果 则返回 ()
# 获取前n行数据 row_2 = cursor.fetchmany(3) 获取前三行数据,元组包含元组
# 需要注明:在MySQL中是NULL,而在Python中则是None
rows = cursor.fetchone()
print(rows)
rows = cursor.fetchall()
print(rows)
2、对连接数据库的查询进行封装方便调用
class Select_sql:
def __init__(self,database, user, password, host, port):
self.conn=psycopg2.connect(database=database, user=user, password=password,
host=host, port=port)
self.cursor = self.conn.cursor()
# 返回单条记录,以元组的形式
def select_one(self,sql):
self.cursor.execute(sql)
self.conn.commit()
row = self.cursor.fetchone()
return row
# 返回多条记录,以列表套元组的形式
def select_all(self,sql):
self.cursor.execute(sql)
self.conn.commit()
rows = self.cursor.fetchall()
return rows
def close(self):
#关闭游标
self.cursor.close()
#关闭数据库连接
self.conn.close()
3、下面是fetchone(),只返回了一条结果,是元组
![](https://img2020.cnblogs.com/blog/1771964/202004/1771964-20200429095855928-1680269072.png)
4、下面是fetchall(),返回了列表套元组
![](https://img2020.cnblogs.com/blog/1771964/202004/1771964-20200429111858084-1309648981.png)