使用python处理数据的时候,数据经常会由数据库提供而来。python连接不同的数据库使用的驱动以及连接方式都有所差异,本文主要记录python3连接不同数据库的方式。包含mysql, sqlite, access, sql server, neo4j和redis数据库的连接以及获取数据的使用方式。
mysql数据库
这里介绍使用pymysql连接mysql数据库,首先安装pymysql包:
pip install pymysql
python代码中初始化数据库连接以及查询数据:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='user')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = 'SELECT * FROM user'
# 执行SQL语句
cursor.execute(sql)
# 游标分批查询所有的数据
fetch_number = 1000
while True:
rows = cursor.fetchmany(fetch_number)
if not rows:
break;
for row in rows:
# 数据处理
print(row)
# 关闭数据库连接
db.close()
sqlite数据库
python3已经内置了sqlite3,可以使用sqlite3直接连接数据库。python代码中初始化数据库连接以及查询数据:
import sqlite3
# 打开数据库连接
db = sqlite3.connect('D:\\user.db3')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = 'SELECT * FROM user'
# 执行SQL语句
cursor.execute(sql)
# 游标分批查询所有的数据
fetch_number = 1000
while True:
rows = cursor.fetchmany(fetch_number)
if not rows:
break;
for row in rows:
# 数据处理
print(row)
# 关闭数据库连接
db.close()
access数据库
这里介绍使用pypyodbc连接access数据库,首先安装pypyodbc包:
pip install pypyodbc
然确保电脑上已经安装ODBC驱动,通过 控制面板—管理工具—数据源(ODBC) 可以查看,如果未安装则需要根据操作系统版本安装,安装显示如下:
python代码中初始化数据库连接以及查询数据:
import pypyodbc
# 打开数据库连接
db = pypyodbc.win_connect_mdb('Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=D:\\user.mdb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = 'SELECT * FROM user'
# 执行SQL语句
cursor.execute(sql)
# 游标分批查询所有的数据
fetch_number = 1000
while True:
rows = cursor.fetchmany(fetch_number)
if not rows:
break;
for row in rows:
# 数据处理
print(row)
# 关闭数据库连接
db.close()
sql server数据库
这里介绍使用pyodbc连接sql server数据库,首先安装pyodbc包:
pip install pyodbc
python代码中初始化数据库连接以及查询数据:
import pyodbc
# 打开数据库连接
db = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=127.0.0.1;DATABASE=user;UID=sa;PWD=123456')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = 'SELECT * FROM user'
# 执行SQL语句
cursor.execute(sql)
# 游标分批查询所有的数据
fetch_number = 1000
while True:
rows = cursor.fetchmany(fetch_number)
if not rows:
break;
for row in rows:
# 数据处理
print(row)
# 关闭数据库连接
db.close()
neo4j数据库
这里介绍使用neo4j连接neo4j数据库,首先安装neo4j包:
pip install neo4j
python代码中初始化数据库连接以及查询数据:
from neo4j import GraphDatabase
# 打开数据库连接
db = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "neo4j"))
# cypher 查询语句
sql = 'MATCH(u:USER) RETURN u.id, u.name, u.age'
# 查询所有的数据
with db.session() as session:
with session.begin_transaction() as tx:
result = tx.run(sql)
for row in result:
# 数据处理
print(row)
# 关闭数据库连接
db.close()
redis数据库
这里介绍使用redis连接redis数据库,首先安装redis包:
pip install redis
python代码中初始化数据库连接以及查询数据:
import redis
# 打开数据库连接
db = redis.connect(host='127.0.0.1', port=6379,db=0)
# 迭代分批查询set中的数据
for i in db.sscan_iter("cache_code"):
print(i)
总结
本文主要介绍了python中如何连接常用的几种数据库的方法,以及简单的获取数据的方法。所介绍的内容比较简单,仅仅作为入门的参考。掌握了如何从数据库中获取数据的方法后,工作中使用python处理数据将大大的提高工作效率。特别是使用pandas包处理数据,可以参考《Python pandas数据分析以及处理的常用功能》。