使用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自动化连接数据库 python连接数据库方法_数据库

 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数据分析以及处理的常用功能》。