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 相关文章推荐
用Python代码来解图片迷宫的方法整理
Apr 02 Python
python实现Floyd算法
Jan 03 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
浅析Python装饰器以及装饰器模式
May 28 Python
python实现俄罗斯方块游戏
Mar 25 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
Django处理多用户类型的方法介绍
May 18 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
Python中remove漏删和索引越界问题的解决
Mar 18 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php实现微信发红包功能
2018/07/13 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
详解jquery uploadify 上传文件
2013/11/09 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
JavaScript字符串对象
2017/01/14 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
python制作最美应用的爬虫
2015/10/28 Python
Python常用的爬虫技巧总结
2016/03/28 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
Python3+Appium安装使用教程
2019/07/05 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
pymysql的简单封装代码实例
2020/01/08 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
.net开发工程师面试题
2014/02/25 面试题
小学教师自我鉴定
2013/11/07 职场文书
学生会竞聘书范文
2014/03/31 职场文书
校运会口号
2014/06/18 职场文书
创新社会管理心得体会
2014/09/12 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS