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. C# 之多线程(二)

    一.确定多线程的结束时间,thread的IsAlive属性 在多个线程运行的背景下,了解线程什么时候结束,什么时候停止是很有必要的. 案例:老和尚念经计时,2本经书,2个和尚念,一人一本,不能撕破,最 ...

  2. 关于vue.js中slot的理解

    slot这块看官网文档,起初有点不懂,仔细研究还是最终理解了,slot是用来干嘛的呢,先看下一个例子: <script src="https://unpkg.com/vue/dist/ ...

  3. 面向对象(基础oop)之结构与数组高级

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  4. [javaSE] 数据结构(二叉查找树-插入节点)

    二叉查找树(Binary Search Tree),又被称为二叉搜索树,它是特殊的二叉树,左子树的节点值小于右子树的节点值. 定义二叉查找树 定义二叉树BSTree,它保护了二叉树的根节点BSTNod ...

  5. 十六、Condition等待通知

    一.简介 我们可以使用syncronized和wait,notify实现等待通知.而syncronized的高级实现Lock,也可以实现等待通知,需要构造Condition的实例对象. JDK文档:h ...

  6. 撩课-Java每天5道面试题第15天

    撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...

  7. Oracle数据库RowId

    RowId是什么? RowId是根据每一行数据的物理信息地址编码而成的一个位列,利用RowId可以快速定位到某一行. Oracle数据库编辑数据必须查出RowId,可以根据如下语句查询: select ...

  8. UOJ#55. 【WC2014】紫荆花之恋

    传送门 暴力思路就是每次点分治计算答案 点分治之后,条件可以变成 \(dis_i-r_i\le r_j-dis_j\) 每次只要查找 \(r_j-dis_j\) 的排名然后插入 \(dis_j-r_j ...

  9. Sass、Less、Stylus,我选Sass!

    Sass官网 | Sass中文 简介:待添加 Less 简介:待添加 Stylus 简介:待添加

  10. NGINX本地服务器解析域名

    1.找到hosts文件 ,添加需要解析的域名 2.在cmd命令窗口中检测解析是否生效 3 找到本地服务器的域名配置文件:添加绑定的域名,更改访问的目录 4.添加pathinfo.隐藏index.php ...