专栏导读
专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html
1 数据库基础知识介绍
1.1 什么是数据库?
数据库是一个结构化存储和组织数据的集合,它可以被有效地访问、管理和更新。数据库的目的是为了提供一种可靠的方式来存储和管理大量的数据,以便用户和应用程序可以方便地进行数据操作、查询和分析。
1.2 数据库管理系统(DBMS)
数据库管理系统(Database Management System,简称DBMS)是一个软件系统,它允许用户创建、访问和管理数据库。DBMS负责处理数据库的各种操作,如数据的存储、检索、更新和删除,同时也提供了一种安全的方式来管理数据的访问权限和完整性。DBMS还可以提供查询语言,允许用户使用特定的语法查询数据库中的数据。
1.3 关系型数据库和非关系型数据库
1.3.1 关系型数据库
关系型数据库(Relational Database)是一种以表格形式组织数据的数据库。它使用结构化查询语言(Structured Query Language,SQL)来管理和查询数据。关系型数据库中的数据以行和列的形式存储,每个表格(也称为关系)都具有固定的列和数据类型。
常见的关系型数据库包括MySQL、PostgreSQL、Oracle等。
1.3.2 非关系型数据库
非关系型数据库(NoSQL Database)是一类不使用传统关系型表格结构来存储数据的数据库。它们适用于需要处理大规模非结构化数据或需要更高的可扩展性和灵活性的场景。
总结: 数据库是用于存储和管理数据的结构化集合,数据库管理系统(DBMS)是用于操作和管理数据库的软件系统。关系型数据库和非关系型数据库是两种不同类型的数据库模型,各自适用于不同的数据存储和处理需求。
2 python 中的数据库操作库介绍
Python中有多个数据库操作库可供选择,用于连接、操作和管理各种类型的数据库。以下是一些常见的Python数据库操作库的概述:
2.1 SQLite3
2.2 MySQL Connector/Python
2.3 psycopg2(用于连接PostgreSQL数据库)
2.4 SQLAlchemy
2.5 peewee
2.6 SQLAlchemy core
这只是一些常见的Python数据库操作库的概述。选择适合你项目需求的库取决于项目的规模、性能要求和开发人员的熟悉程度。无论选择哪个库,了解其文档和示例是掌握数据库操作的关键。
3. Python中的数据库操作库流程
3.1 python操作数据库的通用流程
Python操作数据库的通用流程通常包括以下步骤:
3.2 示例
下面是一个通用的Python数据库操作流程,以SQLite3库示例:
import sqlite3
# 1. 导入数据库库
# 2. 建立数据库连接
conn = sqlite3.connect('mydatabase.db')
# 3. 创建游标对象
cursor = conn.cursor()
# 4. 执行SQL语句
cursor.execute("SELECT * FROM users")
# 5. 处理查询结果
rows = cursor.fetchall()
for row in rows:
print(row)
# 6. 提交事务(如果有修改操作)
conn.commit()
# 7. 关闭游标和连接
cursor.close()
conn.close()
4 python 常用数据库使用示例
4.1 SQLite3
SQLite3是一个嵌入式的轻量级关系型数据库引擎,适用于小型项目或原型开发。它是Python标准库的一部分,无需额外安装。
示例:
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)''')
# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
4.2 MySQL Connector/Python
MySQL Connector/Python是官方提供的用于连接MySQL数据库的库。
import mysql.connector
# 连接到MySQL数据库
conn = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
4.3 psycopg2(用于连接PostgreSQL数据库)
Psycopg2是用于连接和操作PostgreSQL数据库的库。
示例:
import psycopg2
# 连接到PostgreSQL数据库
conn = psycopg2.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
4.4 SQLAlchemy
SQLAlchemy是一个SQL工具包和对象关系映射(ORM)库,提供了更高层次的抽象来处理数据库操作。它支持多种数据库后端。
示例:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建数据库连接引擎
engine = create_engine('sqlite:///mydatabase.db', echo=True)
Base = declarative_base()
# 定义数据模型
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
# 创建数据表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 插入数据
user = User(name='Alice')
session.add(user)
session.commit()
# 查询数据
users = session.query(User).all()
for user in users:
print(user.id, user.name)
# 关闭会话
session.close()
下节介绍数据库连接配置。