在现代软件开发和数据处理中,与数据库进行交互是一项基本而且必不可少的任务。Python作为一门强大的编程语言,提供了多种数据库操作模块,能够满足不同数据库管理系统的需求。本文将深入研究六种常见的Python数据库操作模块,包括SQLite、MySQL、PostgreSQL、MongoDB、Redis和SQLAlchemy。通过对每个模块的详细介绍和示例演示,帮助读者全面掌握Python与数据库的交互技术。
SQLite
1.1 简介
SQLite是一个轻量级的嵌入式数据库引擎,无需独立的服务器进程,可以直接访问数据库文件。在Python中,我们可以使用sqlite3
模块来进行SQLite数据库的操作。
1.2 示例
1import sqlite3
2
3# 连接数据库(如果不存在则创建)
4连接 = sqlite3.connect('my_database.db')
5
6# 创建游标
7游标 = 连接.cursor()
8
9# 执行SQL语句
10游标.execute('''CREATE TABLE IF NOT EXISTS users
11 (id INT PRIMARY KEY, name TEXT, age INT)''')
12
13# 插入数据
14游标.execute("INSERT INTO users VALUES (1, 'Alice', 25)")
15
16# 提交事务
17连接.commit()
18
19# 查询数据
20游标.execute("SELECT * FROM users")
21数据 = 游标.fetchall()
22print(数据)
23
24# 关闭连接
25连接.close()
MySQL
2.1 简介
MySQL是一种流行的关系型数据库管理系统,支持多用户、多线程,并提供了丰富的SQL语法。Python中使用mysql-connector
模块进行MySQL数据库操作。
2.2 示例
1import mysql.connector
2
3# 连接数据库
4连接 = mysql.connector.connect(
5 host="localhost",
6 user="root",
7 password="password",
8 database="my_database"
9)
10
11# 创建游标
12游标 = 连接.cursor()
13
14# 执行SQL语句
15游标.execute('''CREATE TABLE IF NOT EXISTS users
16 (id INT PRIMARY KEY, name VARCHAR(255), age INT)''')
17
18# 插入数据
19游标.execute("INSERT INTO users VALUES (1, 'Bob', 30)")
20
21# 提交事务
22连接.commit()
23
24# 查询数据
25游标.execute("SELECT * FROM users")
26数据 = 游标.fetchall()
27print(数据)
28
29# 关闭连接
30连接.close()
PostgreSQL
3.1 简介
PostgreSQL是一种功能强大的开源关系型数据库系统,支持复杂的数据类型和高级的SQL查询。Python中使用psycopg2
模块进行PostgreSQL数据库操作。
3.2 示例
1import psycopg2
2
3# 连接数据库
4连接 = psycopg2.connect(
5 host="localhost",
6 user="user",
7 password="password",
8 database="my_database"
9)
10
11# 创建游标
12游标 = 连接.cursor()
13
14# 执行SQL语句
15游标.execute('''CREATE TABLE IF NOT EXISTS users
16 (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)''')
17
18# 插入数据
19游标.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('Charlie', 35))
20
21# 提交事务
22连接.commit()
23
24# 查询数据
25游标.execute("SELECT * FROM users")
26数据 = 游标.fetchall()
27print(数据)
28
29# 关闭连接
30连接.close()
MongoDB
4.1 简介
MongoDB是一种面向文档的NoSQL数据库,以其灵活的数据模型和横向可扩展性而闻名。在Python中,我们使用pymongo
模块与MongoDB进行交互。
4.2 示例
1from pymongo import MongoClient
2
3# 连接数据库
4连接客户端 = MongoClient('mongodb://localhost:27017/')
5
6# 获取数据库
7数据库 = 连接客户端['my_database']
8
9# 获取集合
10集合 = 数据库['users']
11
12# 插入文档
13用户数据 = {"name": "David", "age": 28}
14集合.insert_one(用户数据)
15
16# 查询文档
17所有用户 = 集合.find()
18for 用户 in 所有用户:
19 print(用户)
20
21# 关闭连接
22连接客户端.close()
Redis
5.1 简介
Redis是一种基于内存的数据存储,可用作数据库、缓存和消息中间件。在Python中,我们使用redis-py
模块与Redis进行交互。
5.2 示例
1import redis
2
3# 连接数据库
4连接池 = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
5连接 = redis.StrictRedis(connection_pool=连接池)
6
7# 插入数据
8连接.set('counter', 100)
9
10# 查询数据
11计数器值 = 连接.get('counter')
12print(计数器值)
13
14# 关闭连接
15连接池.disconnect()
SQLAlchemy
6.1 简介
SQLAlchemy是一种SQL工具和对象关系映射(ORM)库,它提供了高层的SQL表达和灵活的数据库映射。在Python中,我们使用SQLAlchemy
模块进行SQL数据库操作。
6.2 示例
1from sqlalchemy import create_engine, Column, Integer, String, MetaData
2from sqlalchemy.orm import declarative_base, Session
3
4# 连接数据库
5引擎 = create_engine('sqlite:///my_database.db')
6元数据 = MetaData(bind=引擎)
7
8# 定义模型
9Base = declarative_base()
10
11class User(Base):
12 __tablename__ = 'users'
13 id = Column(Integer, primary_key=True)
14 name = Column(String)
15 age = Column(Integer)
16
17# 创建表
18Base.metadata.create_all()
19
20# 插入数据
21会话 = Session(引擎)
22新用户 = User(name='Eva', age=22)
23会话.add(新用户)
24会话.commit()
25
26# 查询数据
27所有用户 = 会话.query(User).all()
28for 用户 in 所有用户:
29 print(用户.name, 用户.age)
30
31# 关闭连接
32会话.close()
以上就是“Python数据库操作大揭秘:掌握六种常见模块”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。