Python操作MySQL数据库示例

本文介绍如何使用Python连接并操作MySQL数据库。通过安装MySQLdb库,创建测试数据库及表,并插入示例数据,最后编写Python程序查询数据并展示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python操作MySQL数据库示例
日期:2015年10月14日,作者:雨水
基础准备
安装MySQL数据库
$sudo apt-get install mysql-server
备注:本文所有操作在ubuntu操作系统

安装MySQLdb库
$sudo apt-get install python-mysqldb

创建测试数据库testdb
mysql>create database testdb;
mysql> create table products( id int(11) not null auto_increment, name varchar(50) not null, price decimal(8,2) not null default '0.00', primary key (id) );

添加测试数据
mysql> insert products(name, price) values('WuLiangye', 618);
Query OK, 1 row affected (0.01 sec)

mysql> insert products(name, price) values('Maotai', 888);
Query OK, 1 row affected (0.01 sec)

mysql> select * from products;
+----+-----------+--------+
| id | name      | price  |
+----+-----------+--------+
|  1 | WuLiangye | 618.00 |
|  2 | Maotai    | 888.00 |
+----+-----------+--------+
2 rows in set (0.00 sec)

编写Python程序pdb.py
#!/usr/bin/python

import MySQLdb as mdb
import sys

con = None

try:
    con = mdb.connect('localhost', 'root', '123456', 'testdb')
    curs = con.cursor()
    curs.execute("select * from products")
    data = curs.fetchall()
    for row in data:
        for col in row:
           print col,
        print
except mdb.Error, e:
    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)
finally:
    if con:
        con.close()
这段程序相当简单,就不作描述了,但需要 注意一点:第二个for语句下面的两个print的缩进一定代码中的来,否则执行结果就不一样了,这是Python语法的特色。第一个print相比第二个for缩进四个空格,后面的逗号表示不换行。第二个print与第二个for对齐,表示每打印完一行数据才换行。

执行pdb.py程序
dennis@ubuntu14:~$ python pdb.py
1 WuLiangye 618.00
2 Maotai 888.00
可以看到,打印出刚才插入的两条数据。 
 
参考资料:
### Python连接和操作MySQL数据库 #### 使用 `mysql-connector-python` 进行连接和查询 为了使用Python连接并操作MySQL数据库,可以采用 `mysql-connector-python` 库。此库允许开发者轻松地建立到MySQL服务器的安全连接,并执行各种SQL命令。 安装所需的库可以通过pip完成: ```bash pip install mysql-connector-python ``` 下面是一个简单的例子展示如何创建一个新表以及向其中插入记录[^1]: ```python import mysql.connector from mysql.connector import Error try: connection = mysql.connector.connect(host='localhost', database='testdb', user='root', password='password') if connection.is_connected(): db_Info = connection.get_server_info() print("Connected to MySQL Server version ", db_Info) cursor = connection.cursor() cursor.execute("select database();") record = cursor.fetchone() print("You're connected to database: ", record) # 创建表格 create_table_query = '''CREATE TABLE IF NOT EXISTS employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), position VARCHAR(255));''' result = cursor.execute(create_table_query) print('Table created successfully.') # 插入数据 insert_query = """INSERT INTO employees (name, position) VALUES (%s,%s)""" records_to_insert = [('John Doe', 'Manager'), ('Jane Smith', 'Developer')] cursor.executemany(insert_query, records_to_insert) connection.commit() # 提交更改 print(cursor.rowcount, "Record inserted successfully into employee table") except Error as e: print("Error while connecting to MySQL", e) finally: if connection.is_connected(): cursor.close() connection.close() print("MySQL connection is closed.") ``` 这段代码展示了完整的流程:从初始化连接、获取基本信息直到关闭资源释放。它还包含了基本的错误处理机制以确保即使出现问题也能安全退出[^3]。 对于另一种流行的库PyMySQL来说,其用法也非常相似,只需替换导入部分即可[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值