pymysql使用(二)
import pymysql
db = pymysql.connect("localhost","root","","hank") #打开数据库 (如果连接失败会报错)
cursor = db.cursor() #获取游标对象
sql_select = "select version()" #执行sql查询操作
cursor.execute(sql_select)
1
data = cursor.fetchone() #使用fetchone()获取单条数据
print("DB version is : %s" % data)
DB version is : 5.6.39
cursor.execute("drop table if exists hankleo") #如果hankleo表存在,就删除
0
#创建表hankleo
sql_create = "create table hankleo(id int,name varchar(10)) engine = innodb charset = utf8"
cursor.execute(sql_create)
0
#插入操作
sql_insert = '''insert into hankleo(id,name) values(2,"李明")'''
try:
#执行sql
cursor.execute(sql_insert)
db.commit()
except:
#发生异常
db.rollback()
#查询操作
sql_select = '''select * from hankleo'''
try:
#执行sql语句
cursor.execute(sql_select)
#获取所有记录列表
result = cursor.fetchall()
for row in result:
id = row[0]
name = row[1]
print("id = %d,name = %s" % (id,name))
except:
print("Error:unable to fecth data")
id = 2,name = 李明
执行事务
事务机制可以确保数据的一致性
- 事务有四个属性:原子,一致,隔离,持久;通常称为ACID
- Python DB API2.0的事务提供了两个方法:commit 和 rollback
- 对于支持事务的数据库,在python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务,这个区别于mysql客户端,commit()方法提交所有的事务,rollback()方法回滚当前游标的所有操作。
每个方法都开启了一个新的事务
#例子
sql_insert = '''insert into hankleo (id,name) values (1,'china')'''
try:
cursor.execute(sql_insert)
db.commit()
except:db.rollback()
print("end")
#关闭连接
db.close()
end
pymysql使用(二)的更多相关文章
- 数据库入门-pymysql模块的使用
一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...
- Python3.5 学习十二 数据库介绍
MYSQL介绍: 主流三种数据库:Oracle.Mysql.Sqlserver Mysql安装和启动: windows 1安装 2启动服务 3进入bin目录,打开命令行 4 mysqladmin -u ...
- pymysql模块使用教程
一.操作数据库模板 pymysql是Python中操作mysql的模块,(使用方法几乎和MySQLdb相同,但是在Python3中,mysqldb这个库已经不能继续使用了) 下载安装方法: 方法一. ...
- Navicat,SQL注入,pymysql模块
# 关键字exists(了解) 只返回布尔值 True False 返回True的时候外层查询语句执行 返回False的时候外层查询语句不再执行 select * from emp where exi ...
- Django(三) ORM操作
一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 ORM:关系对象映射.定义一个类自动生成数据库的表结构. 数据库常用的数据类型 : 数字 字符串 时间 ORM分为两种类型: 主流都是 ...
- Django(三) ORM 数据库操作
大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...
- python之路-----python操作 mysql
========================pymysql============================ 一.pymysql 基础 安装命令:pip3 install pymysql - ...
- PythonWEB框架之Tornado
前言 Tornado(龙卷风)和Django一样是Python中比较主流的web框架,Tornado 和现在的主流 Web 服务器框架也有着明显的区别:Tornado自带socket,并且实现了异步非 ...
- django操作数据库 ORM
一,数据库连接 创建类 a. 在models.py中先写类 from django.db import models # 表名是app01_userinfo class UserInfo(models ...
随机推荐
- 搭建jenkins集群
搭建jenkins集群是为了解决单点服务器存在的性能瓶颈,也有业务的需要,比如:java服务打包的环境我们需要linux,ios打包的服务器需要mac机. 一.创建agent节点 1.打开 系统管理- ...
- ASOC 音频子系统框架
基于: Mini2440 开发板, Linux 3.4.2 内核 ASOC 简介: ASoC - ALSA System on Chip,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动 ...
- 多环境测试,scheme
1. 新建Build Configuration 2. 新建Scheme 3. 新建User-defined Build Settings 包括bundleid以及p ...
- 【Linux】Centos之安装Nginx及注意事项
相关内容链接 [Linux]nginx常用命令 [nginx]详细配置说明 1.Nginx的简单说明 a. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务 ...
- 【高并发解决方案】7、一致性hash解读
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 ...
- char *s="string"和char s[]="string"的区别
char *s="string"的内容是不可以改的 void main() { char* pStr1 = "Hello!"; char pSt ...
- C++中析构函数的作用
如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭.析构函数允许类自动完成类似清理工作,不必调用其他成员函数. 析构函数也是特殊的类成员函数.简单来说,析构函数与构造函数的作用正好相反,它用来 ...
- Matlab arenstorf problem
% right-hand side of arenstorf problem function yDot = arenstorf(t,y) global mu muHat % unpack y u1 ...
- nginx 匹配规则小总结
nginx location 等号类型(=)的优先级最高,需要精确匹配.一旦匹配成功,则不再查找其他匹配项. ^~类型表达式.一旦匹配成功,则不再查找其他匹配项. 正则表达式类型(~ ~*)的优先级次 ...
- Tarjan中栈的分析与SLT栈的实现
首先看一下手写的栈: do{ printf("%d ",stack[index]); visit[stack[index]]=; index--; }]);//出栈,并且输出. p ...