python编程 之 PyMysql包接口,python中如何使用数据库
1,环境介绍

要求:使用数据库TESTDB.EMPLOYMENT
EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
2,基本用法:
import pymysql # 打开数据库连接,4个参数依次是:本地数据库,数据库用户名,密码,数据库名
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" ) # 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()") #返回1 # 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone() print ("Database version : %s " % data) #返回:DATABASE VERSION:5.7.23-0ubuntu0.16.04.1
# 关闭数据库连接
db.close()
>import pymysql
>db=pymysql.connect("localhost","testuser","test123","TESTDB" ) #连接到数据库先
>cursor=db.cursor() #使用cursor方法创建一个游标对象cursor,目前不是很懂
>cursor.execute("drop table if exists EMPLOYEE") #execute()的参数直接就是sql语言,只是不用末尾加分号而已,由此可见,这果然是个接口包。ps:真的可以删掉EMPLOYEE!厉害了
>sql="""create table employee (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT,SEX CHAR(1),INCOME FLOAT)"""
>cursor.execute(sql) #执行sql字符串代表的sql语言,创建一个table叫employee。 在命令行中执行的话,执行无误会返回0,
2,增
#!/usr/bin/python3
import pymysql # 打开数据库连接,创建游标,开头启动数据库都是这一套,先链接数据库再设置游标
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor() # SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 执行sql语句,此处只是预执行,不会真正插入数据,但是如果可执行就返回1,后面用commit提交
cursor.execute(sql)
# 提交刚刚的插入请求到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback() # 关闭数据库连接
db.close()
特殊说明:ROLLBACK指的是【回滚】,即是在事务的运行过程中,发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有的已完成的操作全部撤销,回滚到事务开始之前的状态。
3 查
import pymysql
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor()
# SQL 查询语句
sql = "select * from employee where income >2000"
try:
# 模拟执行SQL语句
cursor.execute(sql) #返回2
# 获取所有记录列表
results = cursor.fetchall() #真正的执行查询语句,此时results是:(('Mark', 'Twn', 50, 'M', 3000.0), ('lee', 'devin', 30, 'M', 4000.0))
#此处往下只是格式化提取results中的内容。
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
except:
print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()
特殊说明:pymysql中使用fetchone()或者fetchall()语句来提交和处理查询请求
4,改
import pymysql
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE INCOME >2000"
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
5,删
import pymysql
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB"
cursor = db.cursor() # SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > 40"
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback() # 关闭连接
db.close()
python编程 之 PyMysql包接口,python中如何使用数据库的更多相关文章
- Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架
整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport 多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLR ...
- python编程 之 json包
1,json是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 我的理解就是:json是一种统一的格式化的文件,比如,一个jso ...
- Python 编程环境搭建(Windows 系统中)
由于大家普遍使用 Windows 系统,所以本文只介绍 Windows 系统中 Python 环境的安装. 在 Windows 中安装 Python 与安装普通软件没什么差别,下载所需版本的安装包后, ...
- Python编程-模块和包
一.模块 1.什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...
- python编程os、os.path 模块中关于文件、目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名( ...
- Python编程系列---获取请求报文行中的URL的几种方法总结
在浏览器访问web服务器的时候,服务器收到的是一个请求报文,大概GET请求的格式大概如下: 先随便拿到一个请求报文,蓝色即为我们要获取的 GET /index.html HTTP/1.1 Hos ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
- 《趣学Python编程》
<趣学Python编程> 基本信息 作者: (美)Jason Briggs 译者: 尹哲 出版社:人民邮电出版社 ISBN:9787115335951 上架时间:2014-2-21 出版日 ...
- python经典书记必读:Python编程快速上手 让繁琐工作自动化
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/69/ 来源:python黑洞网,专注 ...
随机推荐
- 异步请求 ajax的使用详解
https://blog.csdn.net/happyaliceyu/article/details/52381446 可以说是很详细了,赞
- (贪心部分背包问题)Saving HDU HDU2111
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Linux设备树(一 概述)
一 概述 设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡 ...
- JSP学习记录
<%@ page contentType="text/html;charset=gb2312" %> <html> <h1>计算器</h1 ...
- flask 钩子函数
说明: before_request函数,就是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前执行 示例: from flask import Flask,url_for,redire ...
- layui(五)——form组件常见用法总结
form 是我们非常看重的一块.layui中的form实现全自动的初始渲染,和基于事件驱动的接口书写方式.我整理了layui中form的配置.下边直接给一个栗子,后台采用.net MVC,除了razo ...
- ES6checker ES6浏览器检测
检测地址如下: http://ruanyf.github.io/es-checker/index.cn.html Chrome 44检测结果如下:
- Can't read swagger JSON from http://localhost:8080/Test/api-docs
新手入坑Swagger,搜了下网上博客,各种整合费时费力.弄出来竟然报错: Can't read swagger JSON from http://localhost:8080/Test/api-do ...
- bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)
https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...
- SpringBoot系列: 理解 Spring 的依赖注入(一)
==============================Spring 的依赖注入==============================对于 Spring 程序, Spring 框架为我们提供 ...