Python 极简教程(二十六)- 操作 Mysql 数据库

在实际使用 Python 的过程中,肯定会使用到Python 操作 mysql数据库。

首先要下载 PyMysql 库:

pip install PyMysql

安装好以后就可以在代码中进行引入了。

import pymysql

操作数据库的步骤如下:

  1. 通过 connect 函数连接对应的数据库
  2. 生成游标对象
  3. 以字符串形式组装SQL 语句
  4. 使用游标执行 SQL 语句
  5. 从游标中读取数据

以本机上的 ecshop 数据库为例:

'''
连接数据库,需要如下参数:
host:  数据库服务器地址,本机为localhost
port:  端口,默认为3306,注意必须是整数(不能加引号)
user:  数据库账号,如root
password: 密码,没有密码也必须要传值,传空字符串''即可 
db:  数据库名,这里是ecshop
cursorclass:游标返回的数据类型,默认为二维元组,
可以使用pymysql.cursors.DictCursor 改为字典形式
'''
import pymysql
# 建立连接
db = pymysql.connect(host='127.0.0.1',user='root',password='123456',db='ecshop')
# 有默认值的参数可以不用传参

# 生成游标
cur = db.cursor()

# 构造sql语句
sql = 'SELECT user_name, email FROM ecs_users'  # 查询账号和邮箱

# 使用游标执行sql语句
cur.excute(sql)
# 此时查询出的数据会保存在游标中

# 读取内容
# 一条一条读
print(cur.fetchone())
# ('nemo', '[email protected]')
# 注意这是一个迭代器,下次再执行时
# 会读取下一条数据

# 读取全部
print(cur.fetchall())
# (('nemo', '[email protected]'), ('nemo6', '[email protected]'))

# 记住关闭游标和数据库连接
cur.close()
db.close()

尝试:

  1. 还记得函数参数中参数收集的逆过程么?尝试实现connect(**db_config)
    注:db_config 是一个字典
  2. 把上面的数据库处理过程封装成一个函数 get_sql_data ,实现传入一个sql语句,然后返回该数据查询的所有结果。
sql =  'SELECT user_name, email FROM ecs_users'
print(get_sql_data(sql))
#  (('nemo', '[email protected]'), ('nemo6', '[email protected]'))

注:使用异常处理,避免数据库操作过程出现异常导致,db.close() 不能正常执行。

你可能感兴趣的:(Python 极简教程(二十六)- 操作 Mysql 数据库)