Pymyaql操作数据库

Python3中专门用于操作Mysql数据库的模块。

一、 导入模块

import pymysql

二、 创建连接

conn=pymysql.connect(host=’127.0.0.1’,port=3306,user=’root’,passwd=’root’,db=’数据库名’,charset=’utf8’)

三、创建游标

cursor=conn.cursor()

三、 执行SQL语句

1、执行固定的sql语句

cursor.execute(‘要执行的SQL语句’)

2、执行可变的sql语句

(1)增

A.字符串拼接可以执行(会产生SQL注入的风险)

Inp=input(‘请输入内容’)

Sql=‘insert into 表名(列名) values (“%s”)’

Sql=Sql % (Inp,)

cursor.execute(Sql)

B、参数传递(推荐使用)

Inp=input (‘请输入内容:’)

cursor.execute(‘ insert into 表名(列名)values(%s)’,Inp)

插入多个值:

cursor.execute(‘insert into 表名(列名,列名) values(%s,%s),(‘值1’,‘值2’)

l=[(‘值1’,’值2’),(‘值3’,’值4’)]

cursor.executemany(‘insert into 表名(列名,列名)values(%s,%s)’,l)

(2)删

cursor.execute('delete from test1 WHERE id=%s',5)              #删除表test1中id为5的数据行

(3)改

cursor.execute('update test1 set age=%s WHERE sss=%s',(18,‘aaa’))    #更新test1表中sss列中aaa对应的age列的值为18。

(4)査

<a>fetch法

result=cursor.fetchall()          #取出表中所有数据

print (result)                         #将表中数据以元组的形式打印出来

result=cursor.fetchone()        #取出表中第一条数据

print (result)                         #将表中第一条数据以元组的形式打印出来

result=cursor.fetchmany(3)        #取出表中前3条数据

print (result)                         #将表中前3条数据以元组的形式打印出来

注:使用fetch的方法取数据时,游标会依次向下移动,即:

result=cursor.fetchone()        #取出表中第一条数据

print (result)                         #将表中第一条数据以元组的形式打印出

result=cursor.fetchone()        #取出表中第二条数据

print (result)                         #将表中第二条数据以元组的形式打印出

此时,可以使用scroll的方法移动游标。cursor.scroll(0,mode=’absolute’) #游标返回原点(绝对模式)

cursor.scroll(-2,mode=’relative’)    #游标向上移动2个(相对模式)

<b>将表中数据以字典的形式返回:

创建游标:cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

取数据:cursor.execute(‘select * from 表名’)

print (cursor.fetchall())

如果只取个别列的数据,只需将*改成对应列的列名即可。

<c>取出刚插入数据行的自增列的对应数据:

cursor.execute(‘insert into 表名(列名)values(%s)’,(‘值’))

conn.commit()

print (cursor.lastrowid)            #刚插入数据行的自增列的数字

四、 提交事务

在创建了要执行的SQL语句后,并不会立即执行,而是需要提交事务,否则创建无效。

conn.commit()

五、 关闭游标

cursor.close( )

六、 关闭连接

conn.close( )

Pymyaql操作数据库的更多相关文章

  1. Java-jdbc操作数据库

    如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次.然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句.最后在 ...

  2. python高级之操作数据库

    python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...

  3. greenDao:操作数据库的开源框架

    greenDAO: Android ORM for your SQLite database 1. greenDao库获取 英文标题借鉴的是greendrobot官网介绍greenDao时给出的Tit ...

  4. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

  5. greendao操作数据库的使用方法

    第一步:把greendao-1.3.0-beta-1,greendao-generator-1.3.1两个jar包加载到工程的lib的文件夹中,一定要右键点击Add As Library后才能使用. ...

  6. pymysql 操作数据库

    一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...

  7. Asp.Net MVC 自定义的MVC框架(非EF操作数据库)

    一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...

  8. 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库

    一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...

  9. python操作数据库

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

随机推荐

  1. NPOI创建Excel批注

    var hssfWorkbook = new HSSFWorkbook(); var sheet = hssfWorkbook.CreateSheet(); var patr = sheet.Crea ...

  2. 三、hive JavaAPI示例

    在上文中https://www.cnblogs.com/lay2017/p/9973370.html 我们通过hive shell去操作hive,本文我们以Java代码的示例去对hive执行加载数据和 ...

  3. 代码实现SpringMvc

    偶然看到一篇100多行实现SpringMvc的博客,阅读后整理加实现出来.大家共勉!(纸上得来终觉浅,绝知此事要躬行.) 实现Spring的部分. Bean工厂,统一创建Bean: IOC,实现Bea ...

  4. 最大子序列和问题--时间复杂度O(NlogN)

    最大子序列和问题--时间复杂度O(NlogN) package a; /* * 最大子序列和问题,时间复杂度O(NlogN) */ public class Sequence { private st ...

  5. C# 后台处理图片的几种方式

    第一种: 将上传图片直接保存到本地 var supportedTypes = new[] { "jpg", "jpeg", "png", & ...

  6. Web知识简易介绍及HTTP知识总结

    一.软件系统体系结构: 常见软件系统体系结构B/S.C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 缺点:软件更新是需要同时更新客户端和服务器端两端,比较麻烦 优点:安全 ...

  7. BZOJ1014: [JSOI2008]火星人prefix(splay 二分 hash)

    题意 题目链接 Sol 一眼splay + 二分hash,不过区间splay怎么写来着呀 试着写了两个小时发现死活不对 看了一下yyb的代码发现自己根本就不会splay.... // luogu-ju ...

  8. vue-router初涉

    概念: vue-router: vue官方路由插件. 路由: 指单页面应用的路径管理系统.在vue中都是单页应用,相当于只有一个index.html页面,所以无法使用<a>标签,我们使用路 ...

  9. html中的行内元素和块级元素小结

    一.首先我们总结下行内元素和块级元素有哪些: 行内元素: <a>标签可定义锚<abbr>表示一个缩写形式<acronym>定义只取首字母缩写<b>字体加 ...

  10. 仿小米便签图文混排 EditText解决尾部插入文字bug

    一直想实现像小米便签那样的图文混排效果,收集网上的办法无非三种: 1.自定义布局,每张图片是一个ImageView,插入图片后插入EditText,缺点是实现复杂,不能像小米便签那样同时选中图片和文字 ...