一.pymysql模块
1.pymysql是Python中操作MySQL的模块
2.执行sql语句
(1)连接数据库:

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

(2)创建表:

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #生成sql创建xixi表的语句
  10. sql = "CREATE TABLE xixi (id INT ,name VARCHAR (20))"
  11. #通过游标执行SQL命令语句
  12. cursor.execute(sql)

查看结果:
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
(3)插入数据:

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #插入四条数据
  10. cursor.execute("INSERT INTO xixi VALUES(1,'dongdong'),(2,'nannan'),(3,'xixi'),(4,'beibei')")
  11. #进行提交(在对数据库中的内容进行修改时,需要进行提交内容方可进行保存)
  12. conn.commit()

查看结果:
+------+----------+
| id   | name     |
+------+----------+
|    1 | dongdong |
|    2 | nannan   |
|    3 | xixi     |
|    4 | beibei   |
+------+----------+
(4)查表数据
方式一:查询游标起始的第一条结果

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #查数据
  10. RET=cursor.execute("select * from xixi")
  11. one=cursor.fetchone()
  12. print(one)

查询结果:
{'id': 1, 'name': 'dongdong'}
方式二:查询游标起始的俩条数据

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #查数据
  10. many=cursor.fetchmany(2)
  11. print(many)

查询结果:
[{'id': 1, 'name': 'dongdong'}, {'id': 2, 'name': 'nannan'}]
方式三:查询游标起始的所有数据

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #查数据
  10. all=cursor.fetchall()
  11. print(all)

查询结果:
[{'id': 1, 'name': 'dongdong'}, {'id': 2, 'name': 'nannan'}, {'id': 3, 'name': 'xixi'}, {'id': 4, 'name': 'beibei'}]
(5)scroll移动当前的游标
方式一:相对当前位置向上下移动(负数是向上,正数是向下)

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #查数据
  10. RET=cursor.execute("select * from xixi")
  11. one=cursor.fetchone() #第一次查询
  12. print(one)
  13.  
  14. #scroll移动当前的游标
  15. cursor.scroll(1,mode='relative') #游标向下移动1位
  16.  
  17. one=cursor.fetchone() #第二次查询
  18. print(one)

查询结果:
{'id': 1, 'name': 'dongdong'}
{'id': 3, 'name': 'xixi'}
方式二:把游标位置移动到相对的位置

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. #查数据
  10. RET=cursor.execute("select * from xixi")
  11. one=cursor.fetchone() #第一次查询
  12. print(one)
  13.  
  14. cursor.scroll(3,mode='absolute') #把游标位置移动到3的位置
  15.  
  16. one=cursor.fetchone() #第二次查询
  17. print(one)

查询结果:
{'id': 1, 'name': 'dongdong'}
{'id': 4, 'name': 'beibei'}
二.python中调用数据库启动事务
当前account表
+------+--------+---------+
| id   | name   | balance |
+------+--------+---------+
|    1 | xixi   |   10000 |
|    2 | beibei |   10000 |
+------+--------+---------+
python代码:

  1. import pymysql
  2.  
  3. #连接mysql数据库创建conn对象(host连接的机器,user连接的用户,password连接的密=密码,db连接的数据库 )
  4. conn = pymysql.connect(host='192.168.1.232', port=3306, user='root', passwd='', db='xixi')
  5.  
  6. #创建游标,默认是元组,可以改为字典:conn.cursor(cursor=pymysql.cursors.DictCursor)
  7. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  8.  
  9. try:
  10. insertSQL0="INSERT INTO account(id,name,balance) VALUES (3,'yeye',4000)" #给账户插入一条信息
  11. insertSQL1="UPDATE account set balance=balance-2000 WHERE name='xixi'" #给xixi减去2000
  12. insertSQL2="UPDATE account set balance=balance+2000 WHERE name='beibei'" #给beibei加2000
  13.  
  14. cursor = conn.cursor()
  15.  
  16. cursor.execute(insertSQL0) #执行insertSQL0
  17. conn.commit() #提交insertSQL0的语句到数据库里
  18.  
  19. cursor.execute(insertSQL1) #执行insertSQL1
  20. raise Exception #发生错误跳到except Exception as e
  21. cursor.execute(insertSQL2)
  22. cursor.close()
  23. conn.commit()
  24.  
  25. except Exception as e: #如果捕捉到错误
  26.  
  27. conn.rollback() #执行回滚事务到上一次commit的地方代码继续往下走
  28. conn.commit()
  29.  
  30. cursor.close()
  31. conn.close()

查询account表结果:
+------+--------+---------+
| id   | name   | balance |
+------+--------+---------+
|    1 | xixi   |   10000 |
|    2 | beibei |   10000 |
|    3 | yeye   |    4000 |
+------+--------+---------+

18.python关于mysql的api的更多相关文章

  1. python关于MySQL的API -- pymysql模块

    1.模块安装 pip install pymysql 2.执行sql语句 import pymysql #添加数据 conn = pymysql.connect(host='127.0.0.1', p ...

  2. 第三篇 Python关于mysql的API--pymysql模块, mysql事务

    python关于mysql的API--pymysql模块 pymysql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同. 模块安装 pip install pymys ...

  3. Python自动化 【第十二篇】:Python进阶-MySQL和ORM

    本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 外键 增删改查表 权限 事务 索引 python 操作mysql ORM sql ...

  4. Python开发【第十九篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  5. Python 12 - Mysql & ORM

    本节内容 1.数据库介绍 2.mysql数据库安装使用 3.mysql数据库基础 4.mysql命令 5.事务 6.索引 7.Python操作mysql 8.ORM sqlalchemy了解 数据库介 ...

  6. python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数

    python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...

  7. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  8. 使用 python 管理 mysql 开发工具箱 - 1

    Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...

  9. python使用mysql数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

随机推荐

  1. AI 帮助涂鸦

    这个小工具挺有意思,可以在涂鸦的同时自动猜测你要画什么,并自动完成. https://quickdraw.withgoogle.com/

  2. ava、Python和PHP三者的区别

    Java.Python和PHP三者的区别 2017年07月15日 22:09:21 书生_AABB 阅读数:18994   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  3. code-Behind 技术

    就是代码隐藏,在ASP.NET 中通过ASPX 页面指向CS 文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web 应用程序的创建.比如分工,美工和编程的可以个干各的,不用再像以前asp 那样都代 ...

  4. k8s的flannel的pod运行一段时间init error

    问题现象 使用Kubeadm部署的flannel网络运行一段时间后,提示init:Error错误,查看具体的信息如下: [root@node1 ~]# kubectl describe pod kub ...

  5. 接口自动化:pytest----环境搭建

    出处:https://www.cnblogs.com/yoyoketang/p/9356693.html 前言: python鄙视链:pytest 鄙视 > unittest 鄙视 > r ...

  6. Java复数的加乘除运算

    //主要是对零的处理,有什么不对的地方欢迎批评指正,一起进步class complex{ double a,b; public String toString() { return("实部: ...

  7. spring cloud 的自我保护机制

    spring cloud 的自我保护机制定义: 自我保护模式是:在出现网络异常波动的情况下,使用自我保护模式使eureka 集群更加健壮,稳定. 自我保护机制是:在15分钟内客户端没有雨注册中心发生心 ...

  8. 2017-9-10"切题如切菜杯"模拟赛T4 ZZI

    题目 YYH拿到了父亲给的钱欣喜若狂,把这些钱拿来造了n栋房子.现在他要给这些房子通电.他有两种方法:第一种是在房间里搭核电发电机发电,对于不同的房子,他需要花不同的代价Vi:,第二种是将有电的房子i ...

  9. VBA中查找并选定文字

    如果从 Selection 对象访问 Find 对象,当找到搜索条件时,就会更改所选内容.下列示例选定下一个出现的“Hello”.如果到达文档结尾时仍未找到“Hello”,则停止搜索. With Se ...

  10. WPF popup自动关闭

    var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...