一文读学会Python 操作MySql数据库

引言

在现代应用程序开发中,数据库是存储和管理数据的重要工具。Python 提供了多种库来与不同类型的数据库进行交互,包括 SQLite、MySQL 等。本文将详细介绍如何使用 Python 进行数据库操作,包括连接对象、游标对象的使用,创建数据库文件,以及对 SQLite 和 MySQL 数据库的基本操作。

1. 连接对象

连接对象(Connection Object)是用于与数据库建立连接的对象。通过连接对象,我们可以执行 SQL 语句,并获取查询结果。

示例代码:

import sqlite3

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

# 执行一些数据库操作...

# 关闭连接
conn.close()
2. 游标对象

游标对象(Cursor Object)用于执行 SQL 语句并获取结果。通过游标对象,我们可以执行 SELECTINSERTUPDATEDELETE 等 SQL 语句。

示例代码:

import sqlite3

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

# 执行 SQL 语句
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)")

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
3. 创建数据库文件

使用 Python 可以轻松创建一个新的数据库文件。对于 SQLite,只需调用 sqlite3.connect() 函数即可创建一个新数据库文件。

示例代码:

import sqlite3

# 创建一个新的 SQLite 数据库文件
conn = sqlite3.connect('new_database.db')

# 关闭连接
conn.close()
4. 操作 SQLite

SQLite 是一个轻量级的关系型数据库管理系统,不需要单独的服务器进程或系统配置。下面是一个完整的例子,演示如何使用 Python 操作 SQLite 数据库。

示例代码:

import sqlite3

# 连接到 SQLite 数据库(如果不存在则会创建)
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

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

# 插入数据
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ('Alice', 'alice@example.com'))
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ('Bob', 'bob@example.com'))

# 提交事务
conn.commit()

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

# 更新数据
cursor.execute("UPDATE users SET email = ? WHERE name = ?", ('alice_new@example.com', 'Alice'))
conn.commit()

# 删除数据
cursor.execute("DELETE FROM users WHERE name = ?", ('Bob',))
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
5. 下载安装 MySQL

MySQL 是一个广泛使用的关系型数据库管理系统。你可以从 MySQL 官方网站 下载适合你操作系统的 MySQL 安装包,并按照安装向导进行安装。

6. 安装 PyMySQL

PyMySQL 是一个纯 Python 实现的 MySQL 客户端库。你可以使用 pip 命令来安装 PyMySQL。

安装命令:

pip install pymysql
7. 连接数据库

使用 PyMySQL 连接到 MySQL 数据库非常简单。你需要提供数据库的主机名、用户名、密码和数据库名称。

示例代码:

import pymysql

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

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

# 执行 SQL 语句
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
8. 创建数据表

在连接到数据库后,可以使用 CREATE TABLE 语句来创建新的数据表。

示例代码:

import pymysql

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

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

# 创建表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL
    )
''')

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
9. 操作 MySQL 数据表

以下是一些常见的 MySQL 数据表操作,包括插入、查询、更新和删除数据。

示例代码:

import pymysql

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

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

# 插入数据
cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ('Alice', 'alice@example.com'))
cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ('Bob', 'bob@example.com'))

# 提交事务
conn.commit()

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

# 更新数据
cursor.execute("UPDATE users SET email = %s WHERE name = %s", ('alice_new@example.com', 'Alice'))
conn.commit()

# 删除数据
cursor.execute("DELETE FROM users WHERE name = %s", ('Bob',))
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
结论

本文详细介绍了如何使用 Python 操作数据库,包括连接对象和游标对象的使用,创建数据库文件,以及对 SQLite 和 MySQL 数据库的基本操作。通过这些知识,你可以更高效地管理和操作数据库,为你的应用程序提供强大的数据支持。

扩展阅读


posted @   燕鹏  阅读(318)  评论(0编辑  收藏  举报  
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示