加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python之Sqlite3数据库基本操作

发布时间:2020-12-20 10:03:25 所属栏目:Python 来源:网络整理
导读:在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 sqlite3是Python集成的内置类库,提供

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

涉及知识点

  1. sqlite3是Python集成的内置类库,提供Python操作sqlite3的相关接口。
  2. sqlite3.connect(dbfile) 创建数据库连接,返回一个连接对象
  3. conn.cursor() 创建游标对象,通过返回的cursor对象,执行相应的SQL语句。
  4. cur.execute(sql,*args) 执行语句
  5. conn.commit() 提交执行的结果到数据库
  6. conn.rollback() 回退执行的结果
  7. cur.close() 关闭cursor对象
  8. conn.close() 关闭连接对象

基础操作代码

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

创建数据表

 1 def createDb():
 2     """创建db数据表"""
 3     sql = '''
 4     create table person (
 5     id integer primary key  autoincrement  not null, 6     name varchar not null,1)"> 7     age integer
 8     )
 9     10     executeSql(sql)
View Code

插入语句

1  insertData(name,age):
2     插入数据3     sql = 'insert into person (name,age)values(?,?)'
4     executeSql(sql,(name,age))
View Code

update语句

 updateData(id,name,1)">通过ID进行修改语句update  person set name=?,age =?  where id=?View Code

delete语句

 deleteData(id):
通过ID删除数据delete from person  where id=?View Code

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

def executeSql(sql,*args):
执行更新语句 3     conn = sqlite3.connect(dbfile)
 4     cur = conn.cursor()
 5     try:
 6         cur.execute(sql,1)">args)
 7         conn.commit()
 8         print(执行成功,影响行数:',cur.rowcount)
 9     except Exception as e:
10         conn.rollback()
11         print(e)
12         执行失败)
13     finally14         cur.close()
15         conn.close()
View Code

查询语句(无条件查询)

 queryData():
查询语句select id,age from person 4     executeQuerySql(sql)
View Code

查询语句(条件查询)

 queryDataById(id):
通过id进行查询4     executeQuerySql(sql,))
View Code

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

def executeQuerySql(sql,1)">执行查询语句,可带参数 7         persons = cur.fetchall()
for p in persons:
 9             当前行信息如下:10             print(p)  # 返回的是一个元组tuple
查询成功12     13         14         查询失败15     16 17         conn.close()
View Code

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

源码链接

Python参数传递方式

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

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

 位置传递实例:
2  fun1(a,b,c):
3     return a + b + c
4 
5 
6 print(fun1(1,2,3))
View Code

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

 关键字传递
 fun2(a,1)">print(fun2(1,c=3,b=2))
View Code

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

 默认值传递
def fun3(a,b=2,c=3):
print(fun3(a=1))
View Code

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

def fun4(*name):
2     (type(name))
(name)
6 fun4((1,1)">字典传递,虽然通过元组可以传递多个参数,但如果需要通过键值来获取参数内容时,字典则更加方便,如下所示:

def fun5(a,**kwargs):
print(type(kwargs))   <class 'dict'>
(a,kwargs)
6 fun5(2,3,name=Alan.hsiang',age=23)
View Code

参数传递注意事项:

  • 不可变参数“通过值”进行传递
    • 像整数和字符串这样的对象是不可变对象,它们通过对象引用而不是拷贝进行传递的,但是因为无论如何都不可能在原处改变不可变对象,实际的效果就很像创建了一份拷贝
  • 可变对象是通过“指针”进行传递的
    • 列表和字典这样的对象也是通过对象引用进行传递的,这一点与C语言使用指针传递数组很相似,可变对象能够在函数内部进行原处的改变,这一点和C数组很像
  • 这些参数在书写时要遵循一定的顺序即:位置参数、默认参数、变长参数、关键字参数、命名关键字参数

备注

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读