Python2.7编程中SQLite3基本操作方法示例


Posted in Python onAugust 09, 2017

本文实例讲述了Python2.7中SQLite3基本操作方法。分享给大家供大家参考,具体如下:

1、基本操作

# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sqlite3
def mykey(x):
  return x[3]
conn=sqlite3.connect("D:\\demo\\my_db.db")
sql = "CREATE TABLE IF NOT EXISTS mytb ( a char , b int , c real, d DATE)"
# a char , b int , c real 表示该表有三个字段,
# a 是字符串类型, b 是整数类型, c 是实数类型。
conn.execute( sql )
cs = conn.cursor()
#cs.execute("DELETE FROM mytb WHERE A='张三' ")
cs.execute("DELETE FROM mytb  ")
#删除所有记录
'''''
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values('Zhang San',25, 120, '2014-03-04')" )
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Wang Wu',24, 110, '2014-05-01')" )
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Li Si',23, 130, '2014-04-06')" )
'''
#批量注入,batchdata是一个列表,列表里每一个元素都是一个元组
batchdata=[('Zhang San',25, 120, '2014-03-04'),
      ( 'Wang Wu',24, 110, '2014-05-01'),
      ( 'Li Si',23, 130, '2014-04-06')]
cs.executemany('INSERT INTO mytb values (?,?,?,?)',batchdata)
conn.commit() #将加入的记录保存到磁盘,非常重要!
cs.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")
recs = cs.fetchall( )
print ( recs )
cs.execute( "SELECT * FROM mytb ")#打开数据表
recs = cs.fetchall()#取出所有记录
print ( "there is ", len(recs)," notes." )
print recs
recs.sort(key = mykey)
print recs
cs.close()
conn.close()

2、删除一条记录,使用sql字符串变量可以实现带参数的删除

sql="DELETE FROM my_table WHERE number='" + my_num + "'"
cs.execute(sql)

3、查询某一条或多条记录

如果SQLite3查找的数据库记录中含有中文,取出到Python时要对数据进行decode处理。当时我上网查的时候说要用GBK解码,但我自己却解码失败了,换成utf-8解码才成功显示。 另外,如果只查询一条可以用fetchone语句,或者fetchall之后再通过python把它找出来。

sql="SELECT name FROM my_table WHERE number ='" + my_num + "'"
cs.execute(sql)
the_name=(cs.fetchall())[0][0].decode('utf-8')

4、避免重复注入

有时候我们会有重复的记录,为了避免把相同的记录多次插入到数据库,可以使用如下语句:

sql="INSERT OR REPLACE INTO "+my_table+" values (?,?,?,?,?,?,?) "
#假设my_table有7项

5、插入中文记录至SQLite3

Python是unicode编码,但数据库对中文是使用GBK编码,比如stock_name变量含有中文,则需要做unicode(name, "gbk")处理

batch=[(stock_num, unicode(stock_name, "gbk") )]
cs.executemany( "INSERT OR REPLACE INTO my_table values (?,?) ",batch)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
python下载文件时显示下载进度的方法
Apr 02 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python快速查找list中相同部分的方法
Jun 27 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
python解析含有重复key的json方法
Jan 22 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 Python
Django 前后台的数据传递的方法
Aug 08 #Python
关于python pyqt5安装失败问题的解决方法
Aug 08 #Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 #Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 #Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 #Python
关于Python 3中print函数的换行详解
Aug 08 #Python
Python tkinter模块中类继承的三种方式分析
Aug 08 #Python
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python删除文件示例分享
2014/01/28 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
JPA的优势都有哪些
2013/07/04 面试题
代办委托书怎么写
2014/08/01 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
公司欠款证明
2015/06/24 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python