安装好PostgreSQL后,开启本地服务,可通过Navicat连接数据库并导入excel数据项,注意数据库名、表名、字段名时均使用小写字母,如使用大写字母,在生成对应表名和字段会自动加上“”,影响查询,此外注意避开关键词,比如id,name,group之类SQL需要保留关键词。
如下为连接数据库代码
import psycopg2 # from DBUtils.PooledDB import PooledDB # DBUtils 3.0.2版本无法使用,改为下列代码 from dbutils.pooled_db import PooledDB POOL = PooledDB( creator=psycopg2, # 使用链接数据库的模块 maxconnections=6, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=2, # 初始化时,链接池中至少创建的链接,0表示不创建 blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错 ping=0, # ping SQL服务端,检查是否服务可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always host='127.0.0.1', port=5432, user='postgres', password='postgres', database='9000cw', # charset='utf8' ) def fetchall(sql, *args): """ 获取所有数据 """ conn = POOL.connection() cursor = conn.cursor() cursor.execute(sql, args) result = cursor.fetchall() cursor.close() conn.close() return result def fetchone(sql, *args): """ 获取单行数据 """ conn = POOL.connection() cursor = conn.cursor() cursor.execute(sql, args) result = cursor.fetchone() cursor.close() conn.close() return result if __name__ == "__main__": sql = 'SELECT * FROM personnel_information' result = fetchall(sql=sql) print(result)