18.python关于mysql的api
一.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 |
+------+--------+---------+
18.python关于mysql的api的更多相关文章
- python关于MySQL的API -- pymysql模块
1.模块安装 pip install pymysql 2.执行sql语句 import pymysql #添加数据 conn = pymysql.connect(host='127.0.0.1', p ...
- 第三篇 Python关于mysql的API--pymysql模块, mysql事务
python关于mysql的API--pymysql模块 pymysql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同. 模块安装 pip install pymys ...
- Python自动化 【第十二篇】:Python进阶-MySQL和ORM
本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 外键 增删改查表 权限 事务 索引 python 操作mysql ORM sql ...
- Python开发【第十九篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python 12 - Mysql & ORM
本节内容 1.数据库介绍 2.mysql数据库安装使用 3.mysql数据库基础 4.mysql命令 5.事务 6.索引 7.Python操作mysql 8.ORM sqlalchemy了解 数据库介 ...
- python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数
python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 使用 python 管理 mysql 开发工具箱 - 1
Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
随机推荐
- UVa 11389 - The Bus Driver Problem 难度:0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- yii防止延迟用户多次点击按钮重复提交数据
是不是被用户的行为所困扰? 一. 一个表单用户点击提交按钮了N次,这也导致了数据提交了N次. 为了此受到了测试的欺辱,受到了老板的批评? 不用怕,它就是来拯救你的. 第一步:打开命令行,敲入 comp ...
- 软件151 王楚博 maven的导入
一.maven 包的导入 清单如下: <!-- Inherit defaults from Spring Boot --> <parent> <groupId>or ...
- C# [Win32] [API] Layered Windows
static void* WndProc(void* hwnd, uint uMsg, void* wParam, void* lParam) { switch (uMsg) { case WM_PA ...
- vue+uwsgi+nginx部署路飞学城
vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 ht ...
- 电脑小白和ta的小白电脑——MySQL的简单使用
数据库的基本操作:增删改查 分别使用cmd环境和Navicat可视化工具连接MySQL数据库来实现 这里默认了已经安装和配置MySQL↓ https://www.cnblogs.com/gifted3 ...
- DevExpress v18.2新版亮点——DevExtreme篇(二)
行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExtreme Complete Sub ...
- vim详解
vim介绍: 1.vim是vi的升级版本 2.vim是带有颜色显示的 3.vim三个模式:一般模式.编辑模式.命令模式 最小化模式下默认是没有安装vim的: [root@linux-xl ~]# yu ...
- eclipse Android项目 DDMS db文件 导出 Failed to pull selection null 问题
我在 eclipse的Android项目中,在 DDMS导出db文件 时,发现报错:Failed to pull selection null 在左侧选中设备,在进行导出 这样就可以正常的进行导出db ...
- 启动fiddler导致浏览器无法上网的解决方法
1. 开发fiddler,进入Tools->Fiddler Tools,按照如图3部配置,即可实现无法上网的问题. 2. 见图1: 3.见图2: 4.见图3. 4. 完成以上配置后,重启fidd ...