摘要

本文主要讲解使用Python的MySQLdb库来操作MySQL数据库,包括最常用的数据库的Select、Insert、Delete 、Update操作。
如果还没有安装MySQLdb包,可以参考MySQLdb安装。

1.首先本文的数据库表为Table1,具有name和id两列,并且目前里面有两条数据。

SELECT * from table1

python处理数据库异常 python对数据库操作_Python

2.使用Python连接MySQL数据库并获取操作游标

import MySQLdb
# 打开数据库连接
conn = MySQLdb.connect(host='localhost',user='root',passwd='117117',db='Asher',port=3306)
# 使用cursor()方法获取操作游标 
cursor = conn.cursor()

3.查询Select操作,操作会返回受影响行数

# SQL查询语句
sql = "SELECT * FROM Table1"
# 执行SQL语句
cursor.execute(sql)

python处理数据库异常 python对数据库操作_MySQL_02

这里执行完SQL查询语句之后,操作游标有两个方法,一个属性:
其中属性rowcount是只读属性,返回影响行数;
fetchall()方法将返回全部查询结果;
fetchone()方法将返回一行查询结果。

# fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
# fetchall():接收全部的返回结果行.
# rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

eg:使用fetchall()方法获得所有记录:

# 获取所有记录列表
results = cursor.fetchall()

python处理数据库异常 python对数据库操作_数据库_03

4.插入Insert操作

# SQL 插入语句
sql = "INSERT INTO Table1 VALUES ('%s',%s)" %('c',11)
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行(不执行conn.commit()将不会存入数据库)
   conn.commit()
except:
    # 发生错误时回滚
    print('Insert Error')
    conn.rollback()

执行后结果:

python处理数据库异常 python对数据库操作_python处理数据库异常_04

5.更新Update操作
eg:将id为11的数据更新为id为44

# SQL 更新语句
sql = "UPDATE Table1 SET id = %s WHERE id = %s" %(44,11)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   conn.commit()
except:
    print('Update Error')
    # 发生错误时回滚
    conn.rollback()

执行后结果:

python处理数据库异常 python对数据库操作_数据库_05

6.删除Delete操作
eg:删除id为44的数据

# SQL 删除语句
sql = "DELETE FROM Table1 WHERE id = %s" %(44)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   conn.commit()
except:
    print('Delete Error')
    # 发生错误时回滚
    conn.rollback()

执行后结果:

python处理数据库异常 python对数据库操作_Python_06

7.最后,操作完MySQL数据库,记得关闭数据库连接

# 关闭数据库连接
conn.close()

--------------------------------分割线--------------------------------
Python使用MySQLdb操作MySQL数据库步骤总结:
1.使用MySQLdb.connect()方法连接数据库
2.使用conn.cursor()方法获取操作游标
3.写SQL语句
4.使用cursor.execute()方法执行SQL语句
5.对于删除、更新、插入操作使用conn.commit()方法提交到数据库执行操作
6.发生错误时,使用conn.rollback()方法回滚
7.使用conn.close()关闭数据库连接