欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

Python 操作数据库

Python基础 迷途小书童 4年前 (2020-06-12) 4363次浏览 2个评论

软硬件环境

  • windows 10 64bit
  • Python 3.7.4
  • mysql 8.0.20
  • pymysql

前言

在开发中经常涉及到数据库的使用,而mysql是使用最为广泛的关系型数据库,因为它开源、免费。本文就来使用python语言来操作mysql数据库。

安装mysql

来到mysql的官方网站下载安装包 https://dev.mysql.com/downloads/installer/,目前的版本已经到了8.0.20,下载完成后,双击msi文件进行安装,选择自定义安装

pymysql

在左侧选择需要安装的,点击向右的箭头,右侧的框中是要安装的组件,这里我们只安装server和管理工具workbench

pymysql

pymysql

pymysql

pymysql

默认使用的端口号是3306,保持默认

pymysql

设置超级用户root的密码,如果需要添加普通用户,选择下方的Add User

pymysql

pymysql

pymysql

pymysql

pymysql

安装完毕后,使用workbench创建一个数据库连接,填上ip、端口和用户名

pymysql

使用root账户登录数据库

pymysql

创建一个数据库,名称是testdb,字符编码是utf8

pymysql

接下来,新建一张表,表名是testtable,有三个字段

  • id,数据类型是INT(11),设为主键、唯一、非空、UNSIGNEDAUTO INCREMENT
  • name,数据类型是VARCHAR(45),设为非空
  • sex,数据类型是VARCHAR(45),设为非空

pymysql

pymysql

实例源码

这里我们使用pymysql这个库来操作数据库,首先通过pip来安装

pip install pymysql

数据库的基本操作就是增(Create)、查(Retrieve)、改(Update)、删(Delete),就是所谓的CRUD,下面通过实例一个一个的来操作

import pymysql

# 数据库连接
db = pymysql.connect("localhost", "root", "toor", "testdb")
cursor = db.cursor()

# 插入操作
try:
   # 执行sql语句
   cursor.execute("INSERT INTO testtable(name, sex) VALUES('xgx', 'male')")
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

# 查询操作
try:
   # 执行SQL语句,返回的是满足查询条件的记录数量
   cursor.execute("SELECT * FROM testtable")
   # 获取所有记录列表,除了fetchall方法,pymysql还提供了fetone()、fetchmany()
   results = cursor.fetchall()
   for row in results:
      name = row[1]
      sex = row[2]

      # 打印结果
      print("name: {}, sex: {}".format(name, sex))
except:
   print ("Error: unable to fetch data")

# 更新记录
try:
   # 执行sql语句
   cursor.execute("UPDATE testtable SET sex='female' WHERE id=4")
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

# 删除操作
try:
   # 执行SQL语句
   cursor.execute("DELETE FROME testtable WHERE id=4")
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

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

ubuntu安装mysql

如果你的系统是ubuntu,可以参考 ubuntu安装mysql 进行安装

参考资料

喜欢 (0)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 請問在使用CMD輸入db = pymysql.connect("localhost", "root", "toor", "testdb")時出現 TypeError Traceback (most recent call last) in ----> 1 db = pymysql.connect("1270.0.0.1", "root", "pass", "testdb") TypeError: Connection.__init__() takes 1 positional argument but 5 were given 該如何排除錯誤?
    joker2022-10-14 17:20