sqlite3基本操作 python_Python对Sqlite3数据库基本操作

在一些小的应用中,难免会用到

涉及知识点

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操作

创建数据表:

def createDb():

"""创建db数据表"""

sql = '''

create table person (

id integer primary key autoincrement not null,

name varchar not null,

age integer

)

'''

executeSql(sql)

插入语句:

1 def insertData(name, age):

2 """插入数据"""

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

4 executeSql(sql, (name, age))

update语句:

1 def updateData(id, name, age):

2 """通过ID进行修改语句"""

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

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

delete语句:

1 def deleteData(id):

2 """通过ID删除数据"""

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

4 executeSql(sql, (id,))

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

def executeSql(sql, *args):

"""执行更新语句"""

conn = sqlite3.connect(dbfile)

cur = conn.cursor()

try:

cur.execute(sql, *args)

conn.commit()

print('执行成功,影响行数:', cur.rowcount)

except Exception as e:

conn.rollback()

print(e)

print('执行失败')

finally:

cur.close()

conn.close()

查询语句(无条件查询):

1 def queryData():

2 """查询语句"""

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

4 executeQuerySql(sql)

查询语句(条件查询):

1 def queryDataById(id):

2 """通过id进行查询"""

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

4 executeQuerySql(sql, (id,))

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

def executeQuerySql(sql, *args):

"""执行查询语句,可带参数"""

conn = sqlite3.connect(dbfile)

cur = conn.cursor()

try:

cur.execute(sql, *args)

persons = cur.fetchall()

for p in persons:

print('当前行信息如下:')

print(p) # 返回的是一个元组tuple

print('查询成功')

except Exception as e:

print(e)

print('查询失败')

finally:

cur.close()

conn.close()

Python参数传递方式

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

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

1 # 位置传递实例:

2 def fun1(a, b, c):

3 return a + b + c

4

5

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

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

1 # 关键字传递

2 def fun2(a, b, c):

3 return a + b + c

4

5

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

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

1 # 默认值传递

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

3 return a + b + c

4

5

6 print(fun3(a=1))

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

1 def fun4(*name):

2 print(type(name))

3 print(name)

4

5

6 fun4((1, 2, 3))

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

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)

参数传递注意事项:

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

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

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值