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

import pymysql

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

(2)创建表:

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

import pymysql

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

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

最新文章

  1. Objective-C内存管理之引用计数
  2. Sicily 1151: 简单的马周游问题(DFS)
  3. 开源监控利器grafana
  4. 解析plist文件(字典里包着数组,数组中又包含字典)
  5. 从mysql数据表中随机取出一条记录
  6. 转载:10个实用的但偏执的Java编程技术
  7. Django中的Form
  8. Objective-C 类型判断
  9. 关于Go语言共享内存操作的小实例
  10. [置顶] How to compile openjdk 7 in RHEL5
  11. iOS中的图像处理(一)——基础滤镜
  12. 去掉Enter字符(\r)的几个方法
  13. 随记一个C的时间加减
  14. input的onchange事件实际触发条件与解决方法
  15. html canvas-nest.js 源码
  16. ASP.NET Core 2.0 MVC「远程」验证
  17. 最近面试 Java 后端开发的感受!
  18. Confluence 6 重构索引缓慢
  19. session、cookie 记住登录状态的实现
  20. Google的开源C++单元测试框架Google Test

热门文章

  1. 生产环境ssh登陆策略
  2. 三种Webpack打包方式
  3. mfc基于对话框的简单四则运算计算器
  4. matplotlib图表组成元素
  5. js(含有for if函数)
  6. Modelsim仿真.do脚本示例
  7. 手动增加swap空间
  8. nodejs02-fs模块
  9. BluePrism初尝
  10. WINDOWS SERVER 2016 IE使用FLASH PLAYER的方法