Python 学习笔记(八)—— 数据库操作

目录

一、数据库编程接口

二、常见的数据库函数及其参数说明

三、数据库操作

[3.1 SQLite3](#3.1 SQLite3)

[3.2 MySQL Connector](#3.2 MySQL Connector)

[3.3 PostgreSQL](#3.3 PostgreSQL)

[3.4 SQLAlhemy](#3.4 SQLAlhemy)

四、游标对象

五、创建数据表


一、数据库编程接口

在Python中,有多种数据库编程接口可以使用,其中最常用的是Python的标准数据库API,也被称为DB-API。该接口定义了一组函数和方法,用于连接、查询和操作各种数据库。

以下是Python中常用的数据库编程接口:

  1. DB-API:Python的标准数据库API,支持多种数据库,包括MySQL、PostgreSQL、SQLite等。这是Python的官方数据库接口,可以通过安装相应的数据库驱动程序来使用。

  2. MySQLdb:对MySQL数据库的Python接口,可以用于连接和操作MySQL数据库。

  3. psycopg2:对PostgreSQL数据库的Python接口,可以用于连接和操作PostgreSQL数据库。

  4. sqlite3:Python自带的SQLite数据库接口,可以直接连接和操作SQLite数据库。

  5. pyodbc:对ODBC (Open Database Connectivity) 的Python接口,可以用于连接和操作多种数据库。

二、常见的数据库函数及其参数说明

在Python中,使用数据库需要使用连接对象和游标对象来进行操作。下面是几个常见的数据库函数及其参数说明:

connect()函数:用于创建数据库连接对象。

  • host:数据库服务器的主机名或IP地址。
  • user:登录数据库时使用的用户名。
  • password:登录数据库时使用的密码。
  • database:要连接的数据库名。
  • port:数据库服务器的端口号,默认为数据库服务器的默认端口号。

cursor()函数:用于创建数据库游标对象。

  • cursorclass:游标对象的类,默认为cursor类。

execute()函数:用于执行SQL语句。

  • sql:要执行的SQL语句。
  • args:SQL语句中的参数值。使用参数可以防止SQL注入攻击。

fetchone()函数:用于从结果集中获取下一行。

fetchall()函数:用于从结果集中获取所有行。

commit()函数:用于提交事务。

rollback** ()**函数:用于回滚事务。

close()函数:用于关闭连接。

三、数据库操作

在Python中,可以使用多种库来进行数据库操作,包括:

3.1 SQLite3

SQLite3是Python内置的轻量级数据库,使用简单,适合小型项目和原型开发。可以使用sqlite3模块来操作SQLite数据库。

python 复制代码
import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 创建游标
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 25))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 30))

# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 提交事务并关闭连接
conn.commit()
conn.close()
 

3.2 MySQL Connector

MySQL Connector是Python操作MySQL数据库的官方驱动程序。可以使用mysql-connector-python库来连接和操作MySQL数据库

python 复制代码
import mysql.connector

# 连接数据库
conn = mysql.connector.connect(
   host="localhost",
   user="username",
   password="password",
   database="database_name"
)

# 创建游标对象
cursor = conn.cursor()

# 执行SQL语句
cursor.execute("SELECT * FROM table_name")

# 获取查询结果
result = cursor.fetchall()

# 关闭游标和数据库连接
cursor.close()
conn.close()

3.3 PostgreSQL

PostgreSQL是一个强大的开源关系型数据库,可以使用psycopg2库来连接和操作PostgreSQL数据库。

python 复制代码
import psycopg2

# 连接数据库
conn = psycopg2.connect(
   host='localhost', 
   port=5432, 
   user='username', 
   password='password', 
   dbname='database')

# 创建游标
cursor = conn.cursor()

# 执行SQL语句
cursor.execute('SELECT * FROM table_name')

# 获取查询结果
result = cursor.fetchall()

# 提交数据库事务
conn.commit()

# 关闭游标和数据库连接
cursor.close()
conn.close()
 

3.4 SQLAlhemy

SQLAlchemy是一个Python的SQL工具包,提供了一种统一的API来进行关系型数据库操作。

python 复制代码
from sqlalchemy import create_engine, MetaData, Table

# 连接数据库
engine = create_engine('数据库类型+数据库驱动://用户名:密码@主机名:端口号/数据库名')

# 获取元数据对象
metadata = MetaData(bind=engine)

# 获取表对象
table = Table('table_name', metadata, autoload=True)

# 执行SQL语句
result = engine.execute(table.select())

# 获取查询结果
for row in result:
    print(row)

# 关闭连接
engine.dispose()

四、游标对象

在Python中,游标对象 (Cursor object)用于执行SQL语句并处理查询结果。它允许你在数据库中执行查询、插入、更新和删除操作,并获取返回的结果集(如果有的话)。

以下是一些关于Python游标对象的详细解释:

  1. 创建游标对象 在使用数据库连接库(如mysql-connector-pythonpsycopg2sqlite3等)时,可以使用cursor()方法来创建游标对象。例如:

    python 复制代码
    cursor = cnx.cursor()
  2. 执行SQL语句 游标对象提供了execute()方法来执行SQL语句。你需要将SQL语句作为参数传递给execute()方法。例如:

    python 复制代码
    cursor.execute("SELECT * FROM table_name")
  3. 获取结果集 执行查询语句后,可以使用游标对象的fetchall()fetchone()fetchmany()方法来获取结果集。

    python 复制代码
    fetchall():        获取所有查询结果的列表。
    fetchone():        获取下一行结果。
    fetchmany(size):   获取指定行数的结果。

    例如:

    python 复制代码
    result = cursor.fetchall()
  4. 数据库事务 游标对象还提供了支持数据库事务的方法。你可以使用commit()方法提交更改,使用rollback()方法回滚更改。例如:

    python 复制代码
    cnx.commit()
  5. 关闭游标 在使用完游标对象后,应该关闭它以释放资源。你可以使用close()方法来关闭游标。例如:

    python 复制代码
    cursor.close()

    关闭游标后,你将无法再使用它执行任何操作。

五、创建数据表

要在Python中创建数据表,您可以使用许多不同的方法和库。以下是一些常用的方法:

  • SQLite数据库 : 使用sqlite3库,您可以在Python中创建和管理SQLite数据库,并创建数据表。以下是一个示例代码:
python 复制代码
import sqlite3

# 连接到数据库或创建一个新的数据库
conn = sqlite3.connect('mydatabase.db')

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
                  (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)''')

# 提交更改并关闭连接
conn.commit()
conn.close()
  • MySQL数据库: 使用mysql-connector-python库或pymysql库,您可以在Python中创建和管理MySQL数据库,并创建数据表。以下是一个示例代码:
python 复制代码
import mysql.connector

# 连接到MySQL数据库
conn = mysql.connector.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
                  (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)''')

# 提交更改并关闭连接
conn.commit()
conn.close()
  • PostgreSQL数据库 : 使用psycopg2库,您可以在Python中创建和管理PostgreSQL数据库,并创建数据表。以下是一个示例代码:
python 复制代码
import psycopg2

# 连接到PostgreSQL数据库
conn = psycopg2.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
                  (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)''')

# 提交更改并关闭连接
conn.commit()
conn.close()
相关推荐
cwj&xyp25 分钟前
Python(二)str、list、tuple、dict、set
前端·python·算法
是十一月末29 分钟前
Opencv实现图片的边界填充和阈值处理
人工智能·python·opencv·计算机视觉
dazhong20121 小时前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle
吉大一菜鸡2 小时前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
了一li3 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
算法小白(真小白)3 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
唐小旭3 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
007php0074 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
别致的影分身4 小时前
使用C语言连接MySQL
数据库·mysql