在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。

涉及知识点

sqlite3是Python集成的内置类库,提供Python操作sqlite3的相关接口。

sqlite3.connect(dbfile) 创建数据库连接,返回一个连接对象

conn.cursor() 创建游标对象,通过返回的cursor对象,执行相应的SQL语句。

cur.execute(sql, *args) 执行语句

conn.commit() 提交执行的结果到数据库

conn.rollback() 回退执行的结果

cur.close() 关闭cursor对象

conn.close() 关闭连接对象

基础操作代码

关于Python操作sqlite3的相关核心代码,如下所示:

创建数据表

1 defcreateDb():2 """创建db数据表"""

3 sql = '''

4 create table person (5 id integer primary key autoincrement not null,6 name varchar not null,7 age integer8 )9 '''

10 executeSql(sql)

View Code

插入语句

1 definsertData(name, age):2 """插入数据"""

3 sql = 'insert into person (name,age)values(?,?)'

4 executeSql(sql, (name, age))

View Code

update语句

1 defupdateData(id, name, age):2 """通过ID进行修改语句"""

3 sql = 'update person set name=?,age =? where id=?'

4 executeSql(sql, (name, age, id))

View Code

delete语句

1 defdeleteData(id):2 """通过ID删除数据"""

3 sql = 'delete from person where id=?'

4 executeSql(sql, (id,))

View Code

上面的语句都调用统一的executeSql方法,如下所示:

1 def executeSql(sql, *args):2 """执行更新语句"""

3 conn =sqlite3.connect(dbfile)4 cur =conn.cursor()5 try:6 cur.execute(sql, *args)7 conn.commit()8 print('执行成功,影响行数:', cur.rowcount)9 exceptException as e:10 conn.rollback()11 print(e)12 print('执行失败')13 finally:14 cur.close()15 conn.close()

View Code

查询语句(无条件查询)

1 defqueryData():2 """查询语句"""

3 sql = 'select id,name,age from person'

4 executeQuerySql(sql)

View Code

查询语句(条件查询)

1 defqueryDataById(id):2 """通过id进行查询"""

3 sql = 'select id,name,age from person where id = ?'

4 executeQuerySql(sql, (id,))

View Code

上面的查询语句,都调用统一的executeQuerySql方法,如下所示:

1 def executeQuerySql(sql, *args):2 """执行查询语句,可带参数"""

3 conn =sqlite3.connect(dbfile)4 cur =conn.cursor()5 try:6 cur.execute(sql, *args)7 persons =cur.fetchall()8 for p inpersons:9 print('当前行信息如下:')10 print(p) #返回的是一个元组tuple

11 print('查询成功')12 exceptException as e:13 print(e)14 print('查询失败')15 finally:16 cur.close()17 conn.close()

View Code

关于本例子的执行源码,可通过链接进行下载,如下所示:

Python参数传递方式

Python的参数传递一共有以下五种(位置参数、默认参数、变长参数、关键字参数、命名关键字参数)

位置传递,即参数按照定义的位置及顺序进行传递,如下所示:

1 #位置传递实例:

2 deffun1(a, b, c):3 return a + b +c4

5

6 print(fun1(1, 2, 3))

View Code

关键字传递,即通过传递的参数的名称进行识别。

1 #关键字传递

2 deffun2(a, b, c):3 return a + b +c4

5

6 print(fun2(1, c=3, b=2))

View Code

默认值参数传递,即给某些参数设置一个默认值,如果不传则读取默认值。

1 #默认值传递

2 def fun3(a, b=2, c=3):3 return a + b +c4

5

6 print(fun3(a=1))

View Code

元组传递,在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。元组参数来进行参数传递会非常有用。如下所示:

1 def fun4(*name):2 print(type(name))3 print(name)4

5

6 fun4((1, 2, 3))

View Code

字典传递,虽然通过元组可以传递多个参数,但如果需要通过键值来获取参数内容时,字典则更加方便,如下所示:

1 def fun5(a, b, **kwargs):2 print(type(kwargs)) #

3 print(a, b, kwargs)4

5

6 fun5(2, 3, name='Alan.hsiang', age=23)

View Code

参数传递注意事项:

不可变参数“通过值”进行传递

像整数和字符串这样的对象是不可变对象,它们通过对象引用而不是拷贝进行传递的,但是因为无论如何都不可能在原处改变不可变对象,实际的效果就很像创建了一份拷贝

可变对象是通过“指针”进行传递的

列表和字典这样的对象也是通过对象引用进行传递的,这一点与C语言使用指针传递数组很相似,可变对象能够在函数内部进行原处的改变,这一点和C数组很像

这些参数在书写时要遵循一定的顺序即:位置参数、默认参数、变长参数、关键字参数、命名关键字参数

备注

业精于勤,荒于嬉;行成于思,毁于随!!!

python创建sqlite3数据库_Python之Sqlite3数据库基本操作相关推荐

  1. python创建sqlite3数据库_Python连接SQLite数据库

    Python连接SQLite数据库 SQLite 是一种嵌入式数据库,它的数据库就是一个文件.由于 SQLite 本身是 C 写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在 iOS 和 ...

  2. python自带的数据库_Python小白的数据库入门

    前言 SQL数据库数据库SQL语言入门SQL简介SQL 的作用 SQL语句分类 SQLite 数据库SQLite 中的数据类型 DDL语句创建表 删除表 修改表 DML语句添加 删除 修改 查询 Py ...

  3. python的sqlite数据库_Python操作SQLite数据库

    ### 连接数据库 从2.5版本开始,Python的标准库中就有了一个专门用于SQLite的sqlite3模块.连接SQLite数据库方式如下: ~~~ import sqlite3 as dbapi ...

  4. python操作sqlite数据库_Python 操作SQLite数据库的示例

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.在很多嵌入式产品中使用了它,它占用资源非常的低,python 中默认继承了操作此款数据库的引擎 sq ...

  5. python连接数据库的技术_Python操作MySQL数据库的三种方法

    (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...

  6. python 测试mysql数据库_Python操作MySQL数据库----继续安装和测试

    接上篇,在上一篇中,我们安装好了python和sublime,下面我们需要安装MYSQL的相关软件. 1.安装MYSQL SERVER5.5.28,安装5.6版本的也可以,只是5.6版本安装完成之后没 ...

  7. python 并发 数据库_python写入mysql数据库

    scrapy爬虫成长日记之将抓取内容写入mysql数据库 前面小试了一下scrapy抓取博客园的博客(您可在此查看scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据),但是前面抓取 ...

  8. python写入列表数据_python列表写入数据库

    Python学习(22)--文件操作1 Python学习(22)--文件操作1 之前我们介绍到的数据类型,如列表,字典或者一个数字,字符等等.都是在程序运行时存储在内存中的,存储在内存中的数据不稳定, ...

  9. python教学数据库_Python学习之数据库初识

    9 数据库 9.1 数据库的初识 ​数据库是可以独立运行的,并且可以对数据的增删改查提供高效便捷方式的工具. 数据库解决的问题: ​解决了操作文件的效率和便捷问题 ​解决了多个服务同时使用数据时的一致 ...

  10. python如何收集数据库_python 整理web数据库

    从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信, ...

最新文章

  1. 面试官:听说你精通并发编程,来说说你对ThreadLocal的理解
  2. 汇编语言--BIOS和DOS中断例程
  3. collections python_python: collections
  4. JavaScript类库
  5. 2022-03-31 一些后续
  6. UNIX再学习 -- 网络与网络协议
  7. PHP判断是否有Get参数的方法
  8. The value of a feed cannot be a tf.Tensor object.
  9. python 文件加密_python实现文件快照加密保护的方法
  10. 淘宝购物车分享上线第一天:630万人在用购物车社交
  11. ping 丢包 网络摄像头_FIFA21 新加入网络连接监测功能
  12. java+ext.ajax,[转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使用Java Servlet进行处理
  13. 【强烈推荐】如何解决JQuery类Post方式的跨域问题 - 空山雪林通用模块设计工作室 - ITeye技术网站...
  14. 大数据分析有什么难题
  15. 你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
  16. C++ Primer 5th ed.pdf
  17. 基于MFC对话框的qq游戏连连看外挂
  18. 伟大的民族英雄赵充国
  19. php删除文件找回,在文件管理删除的视频怎么找回?
  20. coldfusion_在ColdFusion中建立动态菜单

热门文章

  1. [bzoj 2555]Substring
  2. 「镁客早报」韩国将支持数字加密货币的正常交易;今年智能手表出货量或达7100万部...
  3. [SQL] 函数整理(T-SQL 版)
  4. 晶科能源与森源电气签订300MW光伏组件供货协议
  5. 物联网产品背后潜藏着危机
  6. magento 让某个页面开启SSL访问
  7. 距离向量路由环路解决的方法.
  8. MS SQL入门基础:数据查询--SELECT语句
  9. vs2019使用webview2开发web浏览器
  10. DWZ(JUI) 教程 跨域请求 iframeNavTab