1.安装引入模块

  • 安装mysql模块

    1. pip install PyMySQL;
  • 文件中引入模块

    1. import pymysql

2.认识Connection对象

  • 用于建立与数据库的连接

  • 创建对象:调用connect()方法

    1. conn = pymysql.connect(host="主机",port=3306,user="用户名",passwd="密码",db="数据库名",charset="utf8")

    如果是本机,host填'localhost',port端口号,默认3306,charset字符编码,默认是'gb2312',要求与数据库创建时指定的编码一致,否则中文会乱码

  • 对象方法

    • close()-------关闭连接
    • commit()-----提交事务,使操作生效,在执行select查询任务时,则不需要这一步
    • rollback()----回滚事务,放弃之前的操作
    • cursor()------创建cursor对象,用于执行sql语句

3.认识Cursor对象

  • 执行sql语句

  • 创建对象,调用Connection对象的cursor()方法

    1. cur = conn.cursor()
  • 对象的方法:

    • close()-----关闭
    • execute(sql,[,parameters])-----执行语句,返回受影响的行数,第二个参数可选,元组或列表类型,参数化可以防止sql注入风险
    • fetchone()-----执行查询语句时,获取查询结果集的第一个行数据,返回一个元组,未查到,则返回None。如果结果集不止一条数据,可以再次执行fetchone()获得第二个行数据,依此类推
    • fetchall()-----执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回,未查到,则返回空元组()。
    • scroll(value[,mode])-----将行指针移动到某个位置。mode表示移动的方式,默认值为'relative',value表示基于当前行向上(取负值)或向下(取正值)移动的行数。当mode的值为‘absolute’,value表示基于第一行数据(位置为0)向下移动的行数。
  • 对象的属性:

    • rowcount只读属性,表示最近一次execute()执行后受影响的行数
    • connection获得当前连接对象

4.示例

  • 增加、修改、删除一条学生表数据

    1. # coding = utf-8
    2.  
    3. import pymysql
    4.  
    5. con = pymysql.connect(host='localhost',port=3306,user='root',password='123',db='test',charset='utf8') # 创建connect对象
    6. cur = conn.cursor() #创建cursor对象
    7. name = input('请输入添加的学生姓名:')
    8. sql1 = 'insert into students(name) values(%s);'
    9. sql2 = 'delete from students where name = "老王";'
    10. sql3 = 'update students set name = “老张” where name = "老李";'
    11. try:
    12. cur.execute(sql1,[name]) #增加一条数据
    13. cur.execute(sql2) #删除一条数据
    14. cur.execute(sql3) #修改一条数据
    15. except Exception as e:
    16. print(e)
    17. con.rollback() # 放弃之前的所有操作
    18. else:
    19. con.commit() # 提交,使所有操作生效
    20. cur.close() # 关闭cursor对象
    21. con.close() # 关闭连接
  • 查询一条学生表数据以及剩下的多行数据

    1. # coding = utf-8
    2.  
    3. import pymysql
    4.  
    5. con = pymysql.connect(host='localhost',port=3306,user='root',password='123',db='test',charset='utf8') # 创建connect对象
    6. cur = conn.cursor() #创建cursor对象
    7. try:
    8. sql = 'select * from students;'
    9. count = cur.execute(sql)
    10. data1 = cur.fetchone() #查找第一行数据
    11. print(data1)
    12. data2 = cur.fetchall() # 查找剩下所有行数据
    13. print(data2)
    14. except Exception as e
    15. print(e)
    16. cur.close()
    17. con.close()

MySQL数据库与python交互的更多相关文章

  1. 四:MySQL系列之Python交互(四)

    该篇主要介绍MySQL数据库的分表.以及与Python的交互的基本操作等. 一.拆分表操作 1.1  准备工作 创建数据库 --> 使用数据库 --> 创建数据表 --- 添加记录 -- ...

  2. python在windows下连接mysql数据库

    一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.M ...

  3. django新建项目,连接mysql数据库

    安装django,进入Django目录,运行 python setup.py install 在workplace目录下新建一个名为site01的项目: cd workplacedjango-admi ...

  4. Django2.2使用mysql数据库pymysql版本不匹配问题的解决过程与总结

    前置条件 django版本:2.2.1 python版本:3.6.6 mysql版本:mysql-community8.0.15 问题 在搭建django项目,配置mysql数据库时遇到无法迁移数据库 ...

  5. python中web应用与mysql数据库交互

    7使用数据库 具体使用python的DB-API,这一章里介绍如何编写代码与MYSQL数据库技术交互,这里使用一个通用的数据库API,名为DB-API. 7.1基于数据库的web应用 之前我们把日志数 ...

  6. python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy

    内容一览: 1.Python操作MySQL数据库 2.ORM sqlalchemy学习 1.Python操作MySQL数据库 2. ORM sqlachemy 2.1 ORM简介 对象关系映射(英语: ...

  7. mysql及python交互

    mysql在之前写过一次,那时是我刚刚进入博客,今天介绍一下mysql的python交互,当然前面会把mysql基本概述一下. 目录: 一.命令脚本(mysql) 1.基本命令 2.数据库操作命令 3 ...

  8. 在python中配置MySQL数据库

    MySQL数据库(1) 尽管用文件形式将数据保存到磁盘,已经是一种不错的方式.但是,人们还是发明了更具有格式化特点,并且写入和读取更快速便捷的东西——数据库(如果阅读港台的资料,它们称之为“资料库”) ...

  9. MysQL使用一与Python交互

    与python交互 在熟练使用sql语句的基础上,开始使用python语言提供的模块与mysql进行交互 这是我们在工作中大事要做的事 先学会sql是基础,一定要熟练编写sql语句 安装引入模块 安装 ...

随机推荐

  1. ES6 Set vs ES5 Array

    ES6 Set vs ES5 Array Set https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Ob ...

  2. BPMN 2.0

    BPMN 2.0 Business Process Model and Notation 业务流程模型和符号 https://www.omg.org/spec/BPMN/2.0.2/ bpmn-js ...

  3. write a node cli tools, step by step

    write a node cli tools, step by step how to write a node cli tools node cli tools, step by step, nod ...

  4. jquery.query.js

    帮助文档 var url = location.search; > "?action=view&section=info&id=123&debug&te ...

  5. [转]ROS Q&A | How to read LaserScan data

    http://www.theconstructsim.com/read-laserscan-data/ Step 1. Open a project on ROS Development Studio ...

  6. 进阶高阶IoT架构-教你如何简单实现一个消息队列

    前言 消息队列是软件系统领域用来实现系统间通信最广泛的中间件.基于消息队列的方式是指由应用中的某个系统负责发送消息,由关心这条消息的相关系统负责接收消息,并在收到消息后进行各自系统内的业务处理.消息可 ...

  7. C# 类中操作主窗体控件

    主窗体程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat ...

  8. Java自学no.1———带你初步认识java

    什么是Java Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言.所谓编程语言,是 计算机的语言,人们可以使用编程语言对计算机下 ...

  9. spring-ioc的注解 理解-1

    简单对象注入的理解 用到了两个对象 Student .Wife ,一个xml配置(在idea编译器的resource文件下),主要是为让spring去扫描注解,一个测试类,一个pom.xml,导入需要 ...

  10. JS判断年份是否为闰年

    //闰年能被4整除且不能被100整除,或能被400整除.function year(){ if(year%4==0&&year%100!=0||year%400==0){        ...