python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行

全栈工程师开发手册 (作者:栾鹏)
python教程全解

python操作sqlite数据库

sqlite数据库以.db格式的文件形式存在,所以不需要安装驱动和应用系统,在标准库中也集成了sqlite数据库的操作库。

#coding:utf-8

# 各种数据库引擎python顶层均有实现,这里只介绍被包含在标准库中的sqlite(以本地文件的形式存在)
import sqlite3

print("=====================sqlite数据库=====================");

getRC = lambda cur: cur.rowcount if hasattr(cur, 'rowcount') else -1                    #获取游标所指向是数据的行数

try:
    conn = sqlite3.connect('somedatabase.db');                                          # 连接数据库
    curs=conn.cursor();                                                                 # 获取游标
    curs.execute('CREATE TABLE student(id INTEGER PRIMARY KEY,name TEXT)');             # 执行代码,创建表和字段
    curs.execute("INSERT INTO student VALUES(1,'student1')");                           # 添加记录 
    curs.execute("INSERT INTO student VALUES(?, ?)",[2, 'student2'])                #添加记录
    num = getRC(curs)                                                                   #获取游标所处理的行数
    conn.commit();                                                                      # 每次执行完后都应该保存
except Exception:print("数据表和记录已经添加");
finally:
    curs.execute("UPDATE student SET name='student3' WHERE id=2")            #更新记录
    curs.execute("SELECT * FROM student");                                # 查询记录
    for row in curs.fetchall():
        print row[0],row[1]
    curs.execute('DELETE FROM student WHERE id=%d' % 1)                                 #删除记录
    curs.execute('DROP TABLE student')                                                  #删除表
    curs.close();                                                                       #关闭游标
    conn.close();                                                                       #关闭连接
    
    

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【为什么学PythonPython 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常看到学Python还是学R的讨论,那时候老齐就选择了Python,并且开始着手出版《跟老齐学Python》。时至今日,已经无需争论。Python给我们带来的,不仅仅是项目上的收益,我们更可以从它“开放、简洁”哲学观念中得到技术发展路线的启示。 借此机会,老齐联合CSDN推出了本课程,希望能影响更多的人走进Python,踏入编程的大门。 【课程设计】 本课程共包含三大模块: 一、基础知识篇 内置对象和基本的运算、语句,是Python语言的基础。本课程在讲解这部分知识的时候,不是简单地将各种知识做简单的堆砌,而是在兼顾内容的全面性的同时,更重视向学习者讲授掌握有关知识的方法,比如引导学习者如何排查错误、如何查看和理解文档等。   二、面向对象篇 “面向对象(OOP)”是目前企业开发主流的开发方式,本课程从一开始就渗透这种思想,并且在“函数”和“类”的学习中强化面向对象开发方式的学习——这是本课程与一般课程的重要区别,一般的课程只在“类”这里才提到“对象”,会导致学习者茫然失措,并生畏惧,乃至于放弃学习。本课程则是从开始以“润物细无声”的方式,渗透对象概念,等学习到本部分的时候,OOP对学习者而言有一种“水到渠成”的感觉。   三、工具实战篇 在项目实战中,除了前述的知识之外,还会用到很多其他工具,至于那些工具如何安装?怎么自己做工具?有那些典型工具?都是这部分的内容。具体来说,就是要在这部分介绍Python标准库的应用以及第三方包的安装,还有如何开发和发布自己的工具包。此外,很多学习Python的同学,未来要么从事数据科学、要么从事Web开发,不论哪个方向,都离不开对数据库操作,本部分还会从实战的角度,介绍如何用Python语言操作常用数据库
好的,下面是一个简单的示例代码,演示如何使用Python创建SQLite3数据库并添加增删查改功能: ```python import sqlite3 class Database: def __init__(self, dbname): self.conn = sqlite3.connect(dbname) self.cur = self.conn.cursor() self.cur.execute("CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT, price REAL)") self.conn.commit() def insert(self, name, price): self.cur.execute("INSERT INTO items VALUES (NULL,?,?)", (name, price)) self.conn.commit() return self.cur.lastrowid def view(self): self.cur.execute("SELECT * FROM items") rows = self.cur.fetchall() return rows def search(self, name="", price=""): self.cur.execute("SELECT * FROM items WHERE name=? OR price=?", (name, price)) rows = self.cur.fetchall() return rows def delete(self, id): self.cur.execute("DELETE FROM items WHERE id=?", (id,)) self.conn.commit() def update(self, id, name, price): self.cur.execute("UPDATE items SET name=?, price=? WHERE id=?", (name, price, id)) self.conn.commit() def __del__(self): self.conn.close() # Usage example if __name__ == '__main__': db = Database('mydatabase.db') db.insert("apple", 0.5) db.insert("banana", 0.3) db.insert("orange", 0.8) print(db.view()) print(db.search(name="apple")) db.update(1, "apple", 0.6) print(db.view()) db.delete(2) print(db.view()) ``` 这个示例代码中,我们创建了一个名为“items”的表,有三列:id、name和price。我们还定义了五个方法:insert()、view()、search()、delete()和update(),分别用于向表中插入数据、查看所有数据、根据条件搜索数据、删除数据和更新数据。在使用这些方法之前,我们需要先创建一个Database对象,并指定数据库文件名,然后就可以使用这些方法来操作数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值