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. 关于UI回调Invoker的实现(二)

    上篇我说到,光有一个IOperation*的指针,是无法记录这么多事件的.由于无法确定要把回调绑定到哪个事件上,因此,我们需要引入一个中间的传递机制. 没有看到前面的请先查阅上一篇 关于UI回调Inv ...

  2. 利用三层判断sql数据库中编码是否已经存在(个人拙作,不喜勿喷)

    本人.Net新手,初学三层便想记录写笔记,以供像自己一样的新人去学习,大神就不用看啦 Dal层: /// 判断编码是否存在 /// </summary> /// <param nam ...

  3. 如鹏网学习笔记(九)JavaScript

    JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...

  4. Java实现类似类似百度搜索模糊关键字

    package com.test; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashM ...

  5. POJ 2184(01背包)(负体积)

    http://poj.org/problem?id=2184 http://blog.csdn.net/liuqiyao_01/article/details/8753686 对于负体积问题,可以先定 ...

  6. 《JavaWeb从入门到改行》很好的复习资料: SQL语句到底怎么写 ?

    本文用到的数据库如下: CREATE DATABASE exam; /创建部门表/ CREATE TABLE dept( deptno INT PRIMARY KEY, dname ), loc ) ...

  7. CSS之Flex 布局

    Flex 布局教程:语法篇 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些 ...

  8. Android学习笔记(4)----Rendering Problems(The graphics preview in the layout editor may not be accurate)

    在Android Studio中新建了一个 setting.xml 文件,布局好文件后,从 Text 界面切换到 Design 界面,显示了如下错误: 网上搜寻 The graphics previe ...

  9. logback配置文件---logback.xml详解

    一.参考文档 1.官方文档 http://logback.qos.ch/documentation.html 2.博客文档 http://www.cnblogs.com/warking/p/57103 ...

  10. MATLAB简易验证码识别程序介绍

    本推文主要识别的验证码是这种: 第一步: 二值化 所谓二值化就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵. 第二步: 文字分割 为了能识别出字 ...