写点什么

4000 字,详解 Python 操作 MySQL 数据库

  • 2022 年 5 月 01 日
  • 本文字数:1505 字

    阅读完需:约 5 分钟

import pymysql

2. 链接 MySQL 服务器

db = pymysql.connect(host='localhost' , user='root' , password='******' , port=3306 ,db='spiders' , charset='utf8')

3. 创建一个 cursor 游标对象

cursor = db.cursor

4. 在这一步写你的 sql 语句

sql = 'select version'

5. 执行 sql 语句

cursor.execute(sql)

6. 断开连接

db.close


可以看出,整个过程就是第四步那里不同。归根到底,其实就是写 sql。


2. 需要特别说明的知识点


==============


Ⅰ 各参数说明




db = pymysql.connect(host='localhost' , user='root' , password='******' , port=3306 ,db='spiders' , charset='utf8')


这一行代码很长,里面涉及到好几个参数,这里为大家一一介绍如下:


  • 参数 1 :mysql 服务器所在的主机 IP

  • 参数 2 :用户名;

  • 参数 3 :密码;

  • 参数 4 :连接的 mysql 主机的端口,默认是 3306;

  • 参数 5 :连接的数据库名;

  • 参数 6 :通信采用的编码方式,默认是'gb2312',要求与数据库创建时指定的编码一致,否则中文会乱码;


Ⅱ cursor 游标对象


---------- 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ------



3. Python 增删改查操作


================


① 创建一个数据表




import pymysql


db = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')


cursor = db.cursor

检查表是否存在,如果存在删除

cursor.execute('drop table if exists students')

创建表

sql = 'create table students(id int auto_increment primary key not ,name varchar(10) not ,age int not )'


cursor.execute(sql)


db.close


注:以后用代码创建表的机会并不多,表一般都是我们提前创建好的。


② 插入数据




import pymysql


db = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')


cursor = db.cursor

插入数据

sql = 'insert into students(name,age) values(%s,%s)'


try:


cursor.execute(sql,('孙悟空',100000))


db.commit


except:print("插入失败")


db.rollback


db.close


注 1:插入数据一定要用 try…except…语句,因为万一没插入成功,其余代码都无法执行。


注 2:import pymysql,此模块是默认开启 mysql 的事务功能的,因此,进行“增”、“删”、“改”的时候,一定要使用 db.commit 提交事务,否则就看不见所插入的数据。


③ 更新数据




import pymysql


db = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')


cursor = db.cursor

更新数据

sql = 'update students set age =%s where name=%s'


try:


cursor.execute(sql,(30,"郭卫华"))


db.commit


except:


print("插入失败")


db.rollback


db.close


③ 删除操作




import pymysql


db = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')


cursor = db.cursor

删除数据

sql = 'delete from students where age=100000'


try:


cursor.execute(sql)


db.commit


except:


print("插入失败")


db.rollback


db.close


④ 查询操作




  • fetchone 功能:获取下一个查询结果集,结果集是一个对象。

  • fetchall 功能:接收全部返回的行。


import pymysql


db = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')


cursor = db.cursor

查询数据

sql = 'select * from students where age>60'


try:


cursor.execute(sql)


reslist = cursor.fetchall


for row in reslist:


print(“%d--%d” %(row[0],row[1],… row[n]))


except:


print("插入失败")

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
4000字,详解Python操作MySQL数据库_程序员_爱好编程进阶_InfoQ写作社区