在Python中,与MySQL数据库进行交互是常见的任务,特别是在数据处理和分析中。本文将深入探讨如何使用Python的MySQLdb库来执行数据库表的变更(包括插入、删除和更新)以及查询操作。
要连接到MySQL数据库,你需要导入MySQLdb模块。在Python中,可以使用`MySQLdb.connect()`函数来创建一个连接对象。这个函数通常接收以下参数:服务器地址(如"localhost")、用户名、密码、数据库名。例如:
```python
import MySQLdb
db = MySQLdb.connect("localhost", "root", "root", "pydb")
```
创建连接后,我们需要创建一个游标对象,它是执行SQL命令的接口。使用`cursor()`方法创建游标:
```python
cursor = db.cursor()
```
进行数据库表变更的操作主要包括插入(INSERT)、更新(UPDATE)和删除(DELETE)。
1. **插入数据**:
使用`cursor.execute()`执行SQL语句,以插入新记录到数据库。例如,下面的代码将插入一条新的员工记录:
```python
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d') " % (firstname, lastname, age, sex, income)
cursor.execute(sql)
db.commit()
```
2. **更新数据**:
更新记录时,可以使用`UPDATE`语句。下面的示例将所有性别为'M'的员工年龄加1:
```python
sql = "UPDATE EMPLOYEE SET AGE = AGE+1 WHERE SEX = '%c'" % ('M')
cursor.execute(sql)
db.commit()
```
3. **删除数据**:
要删除满足特定条件的记录,使用`DELETE`语句。以下代码会删除所有年龄超过20岁的员工:
```python
sql = 'DELETE FROM EMPLOYEE WHERE AGE > {}'.format(20)
cursor.execute(sql)
db.commit()
```
进行查询操作,你可以使用`SELECT`语句获取数据。`cursor.execute()`执行SQL查询,然后`cursor.fetchall()`获取所有结果。以下代码展示了如何查询收入大于1000的员工:
```python
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > '%d'" % (1000)
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
# 输出查询结果
...
```
在执行这些操作后,记得使用`commit()`提交事务,以确保数据持久化。如果出现错误,使用`rollback()`回滚事务,以保持数据一致性。
Python的MySQLdb库提供了简单而强大的接口,用于执行MySQL数据库的各种操作,包括表的变更和查询。通过创建连接、游标,然后编写和执行SQL命令,我们可以轻松地与MySQL数据库进行交互,实现数据的管理与分析。