Python 连接 MySQL 数据库

连接数据库

我们有这样的数据库:

  • HOST: localhost
  • PORT: 3306
  • USERNAME: root
  • PASSWORD: password
  • DATABASE: my_db

表结构:

my_table,Primary: id

column_name data_type is_nullable column_default
id INT NO AUTO_INCREMENT
username VARCHAR(255) NO EMPTY
password VARCHAR(255) NO EMPTY

表数据:

id username password
1 user1 password1
2 user2 password2
  1. 安装连接库

    pip install mysql-connector-python
    
  2. 查询

    import mysql.connector
    
    try:
        connection = mysql.connector.connect(
            host='localhost',
            port=3306,
            user='root',
            password='password',
            database='my_db'
        )
    
        if connection.is_connected():
            cursor = connection.cursor()
            print("成功连接到数据库")
    
            # 进行一次查询
            query = "SELECT * FROM my_table"
            cursor.execute(query)
            results = cursor.fetchall()
            # 打印查询结果
            for row in results:
                print(row)
    
    except mysql.connector.Error as e:
        print("连接数据库失败:", e)
    
    finally:
        # 关闭游标
        if 'cursor' in locals() and cursor:
            cursor.close()
        # 关闭数据库连接
        if 'connection' in locals() and connection.is_connected():
            connection.close()
            print("数据库连接已关闭")
    
    成功连接到数据库
    (1, 'user1', 'password1')
    (2, 'user2', 'password2')
    数据库连接已关闭
    

执行 SQL 语句

执行 SQL 语句要用到的函数只有四个:

# 获取游标
cursor = connection.cursor()
# 执行 SQL 语句
cursor.execute(query, values)
# 获取结果
results = cursor.fetchall()
# 提交事务
connection.commit()

插入数据

cursor = connection.cursor()

# 定义插入数据的 SQL 语句
query = """
INSERT INTO my_table (username, password)
VALUES (%s, %s)
"""
# 数据值
values = ('user3', 'password3')

# 执行插入操作
cursor.execute(query, values)
# 提交事务
connection.commit()
print("数据插入成功")
posted @ 2025-01-08 15:19  Undefined443  阅读(17)  评论(0)    收藏  举报