终于学到数据库操作了,这意味着什么?以后再也不用从文件里读写数据了,过程实在太复杂了~~~为了纪念这个激动人心的时刻,一定要写一篇博客!

使用mysql数据库——增

  插入一条数据

  

  首先,还是先解释一下如何使用数据库,按照上面的方法就可以连接数据库了。这里要解释两件事情。

  1.执行sql语句返回的reCount是什么?

  这个recount不是我们执行sql的时候查出的内容,而是,明白了吧,就是这样,喵~~~

  2.cur是什么?

  这里的cur指的是游标。游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作。然而这些都是mysql内部的事情了,我们只需要知道要写上这么两句话,在执行sql语句前实例化一个游标对象,并在执行完sql语句提交后,关掉这个游标就好了。

  批量插入数据

  

  对就是这么简单,参数换成列表,方法换成executemany,搞定!需要注意的是那个占位符类似物:%s,要记得list里有几个元素就写几个。

  cur.lastrowid和conn.insert_id():

    cursor.lastrowid:最后一条记录的主键ID

    conn.insert_id():最新插入记录的主键ID

    网上说:结果一般情况下是一样的,最后一条记录肯定就是刚刚插入的记录。但如果是并发插入就不一样了。自己起了多线程,也并没有发现什么。。。如果有小伙伴知道,欢迎指教~~~上面两个方法需要注意的是一定要在conn.commit()之前执行。否则只会返回0。这两个方法也只能返回本次conn连接中插入数据的信息,放在select之后是不好用的哦!

使用mysql数据库——删、改

    

  

  删除操作和修改操作与插入操作唯一的不同就是——sql不同。。。还要怎么简单!!!

使用mysql数据库——查

  在python的MySQLdb模块中,有三个查找方法,fetchone,fetchmany和fetchall。常用的只有fetchall。需要注意的是,fetch的结果默认返回tuple。((item1,item2,...),(item1,item2,...)),第一层是行,第二层是列(也就是一行中的每一项)。当然可以修改返回值的格式。下面介绍~~~

  fetchone

  

  jiang~就是上面这样,这个时候好像就知道游标是怎么一回事儿了吧?

  fetchmany

  

  为什么说fetchone,fetchonemany并没有什么用呢?我们看上面的方法,其实都是执行了一样的sql,也就是说,我们其实是将所有的数据读到了内存中,再从中选取我们需要的,但是这一步我们在写sql的时候就可以做到了,读到内存里占用了大量的内存空间,绝对得不偿失~~~

  fetchall

  

  在最后补上修改返回结果格式为dict的方法。这就是mysql的基本操作啦~~~

参考文献:

  http://www.cnblogs.com/wupeiqi/articles/5095821.html

python——SQL基本使用的更多相关文章

  1. [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子

    [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive h ...

  2. Python SQL相关操作

    环境 Anaconda3 Python 3.6, Window 64bit 目的 从MySQL数据库读取数据,进行数据查询.关联 代码 # -*- coding: utf-8 -*- "&q ...

  3. python sql语句封装连接mysql

    进行了代码优化,欢迎评审 #!/usr/bin/python # -*- coding:utf-8 -*- import logging logging.basicConfig(level=loggi ...

  4. 2019-03-28 Python SQL 的注释

    SQL Server 多行注释 : ctrl + k + c SQL Server 单行注释:  -- Python 单行注释:# Python多行注释:''' '''

  5. Python SQL execute加参数的原理

    在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config ...

  6. Python sql数据的增删改查简单操作

    1.insert import mysql.connector import os import codecs #设置数据库用户名和密码 user='root';#用户名 pwd='root';#密码 ...

  7. Python——SQL——将查询的数据列表化

    sql = 'select paihao from yang1.cailiaopai' data = datebase.shujuku.sj_select(sql) #将获得的数据进行列表化 data ...

  8. Python sql注入 过滤字符串的非法字符

    #coding:utf8 #在开发过程中,要对前端传过来的数据进行验证,防止sql注入攻击,其中的一个方案就是过滤用户传过来的非法的字符 def sql_filter(sql, max_length= ...

  9. python SQL注入测试脚本(更新中)

    import requests import json import warnings warnings.filterwarnings("ignore") url = 'https ...

随机推荐

  1. html标签中meta属性使用介绍

    前言 meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用 ...

  2. Oracle数据访问组件ODAC的安装方法

    Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...

  3. 运行第一个abp项目VS2015+localDB

    ASP.NET Boilerplate,简称ABP 详细深入:可以参考如下文章 http://www.cnblogs.com/mienreal/p/4528470.html http://www.cn ...

  4. npm 安装本地包

    npm install ../xxx 就行 如果报错,比如 1`Refusing to install  as a dependency of itself 说明你的本地模块没npm init ,也就 ...

  5. HttpClient 版本变化 转载

    转载地址:http://my.oschina.net/u/577453/blog/173724 最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用 ...

  6. 【前端】require函数实现原理

    // require函数实现原理: function require(modulePath) { var regExp = /\w+$/g; var moduleName = regExp.exec( ...

  7. windows下的c语言和linux 下的c语言以及C标准库和系统API

    1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样.当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作 ...

  8. 手机响应式js轮播基础

    onmousedown --->ontuchstart onmousemove --->ontouchmove onmouseup --->ontouchend ontuchstar ...

  9. Unity手撸2048小游戏——背景文字控制

    今天继续昨天的计划吧 1.新建项目.场景命名啥的都不说了吧. 2.直接开始新建一个Image,顺便把Image改名成Chessman 3.选中Image新建一个Text对象,调整下大小位置.这样就算完 ...

  10. CentOS离线安装GCC编译环境

    gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...