MariaDB是一个开源的关系型数据库管理系统,由原始开发者MySQL的创始人和团队进行维护。它与MySQL高度兼容,因此经常被视作MySQL的直接替代品。在Python中操作MariaDB非常方便,感谢mysql.connector
这个强大的库。本文将指导你如何使用这个库来执行在MariaDB中的基本数据库操作。
安装mysql.connector
在开始之前,确保你的Python环境已安装mysql.connector
库。通常,它可以通过pip轻松地安装:
pip install mysql-connector-python
连接到MariaDB数据库
与MariaDB数据库的交互始于建立连接。以下是如何连接到MariaDB数据库的示例代码:
import mysql.connector
from mysql.connector import Error
try:
connection = mysql.connector.connect(
host='localhost', # 数据库主机地址
user='yourusername', # 数据库用户名
password='yourpassword',# 数据库密码
database='yourdb' # 数据库名
)
if connection.is_connected():
db_info = connection.get_server_info()
print("成功连接到MariaDB数据库,服务器版本为:", db_info)
except Error as e:
print("连接错误:", e)
finally:
if connection.is_connected():
connection.close()
print("MariaDB数据库连接已关闭")
创建数据库和表
连接建立后,接下来可以创建数据库或表:
cursor = connection.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS example_db")
cursor.execute("USE example_db")
cursor.execute("CREATE TABLE IF NOT EXISTS example_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(10, 2))")
插入数据
向MariaDB表中插入数据的过程如下:
query = "INSERT INTO example_table (name, price) VALUES (%s, %s)"
values = ("Product1", 100.50)
cursor.execute(query, values)
connection.commit()
print(cursor.rowcount, "条记录被插入。")
查询数据
使用cursor.execute()
来执行SQL查询,并通过cursor.fetchall()
来获取结果:
cursor.execute("SELECT * FROM example_table")
rows = cursor.fetchall()
for row in rows:
print(row)
更新和删除数据
更新或删除数据的操作如下所示:
# 更新数据
update_query = "UPDATE example_table SET price = %s WHERE name = %s"
data = (120.99, "Product1")
cursor.execute(update_query, data)
connection.commit()
# 删除数据
delete_query = "DELETE FROM example_table WHERE name = %s"
data = ("Product1",)
cursor.execute(delete_query, data)
connection.commit()
错误处理
在操作数据库时,适当的错误处理是必不可少的:
try:
# 尝试执行数据库操作
cursor.execute(some_query)
connection.commit()
except mysql.connector.Error as error:
print("发生错误:", error)
connection.rollback()
结语
mysql.connector
库为Python与MariaDB的交云提供了一个简单有效的方式。本文演示了如何安装mysql.connector
库、建立连接、创建数据库与表、执行CRUD操作,以及进行错误处理。这些都是构建一个健売和灵活的数据库交互层所必须的基础知识。