Python数据库编程
发布日期:2021-06-30 15:00:59 浏览次数:2 分类:技术文章

本文共 2758 字,大约阅读时间需要 9 分钟。

操作数据库的基本流程

使用Python DB API 2.0操作数据库的基本流程如下:

  1. 调用connect()方法打开数据库连接,该方法返回数据库连接对象。
  2. 通过数据库连接对象打开游标。
  3. 使用游标执行SQL语句。
  4. 关闭游标。
  5. 关闭数据库连接。

操作SQLite数据库

SQLite只是一个嵌入式的数据库引擎,专门适用于在资源有限的设备上进行适量数据的存取。只是一个文件,不需要服务器进程。

>>> import sqlite3>>> sqlite3.apilevel'2.0'>>> conn = sqlite3.connect('first.db')>>> c = conn.cursor()>>> c.execute("""... create table user_tb(... _id integer primary key autoincrement,... name text,... pass text,... gender text)""")
>>> c.execute("""... create table order_tb(... _id integer primary key autoincrement,... item_name text,... item_price real,... item_number real,... user_id inteter,... foreign key(user_id) references user_tb(_id) )""")
>>> c.close()>>> conn.close()

使用SQLite Expert工具

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

插入一条数据

>>> import sqlite3>>> conn = sqlite3.connect('first.db')>>> c = conn.cursor()>>> c.execute('insert into user_tb values(null, ?, ?, ?)', ('孙悟空', '123456', 'male'))
>>> conn.commit()>>> c.close()>>> conn.close()

在这里插入图片描述

插入多条数据

>>> import sqlite3>>> conn = sqlite3.connect('first.db')>>> c = conn.cursor()>>> c.executemany('insert into user_tb values(null, ?, ?, ?)',... (('sun', '123456', 'male'),... ('bai', '123456', 'female'),... ('zhu','123456','male')))
>>> conn.commit()>>> c.close()>>> conn.close()

在这里插入图片描述

executemany()方法执行一条insert语句, 但调用该方法的第二个参数是一个元组,该元组的每个元素都代表执行该insert语句一次,在执行insert语句时这些元素负责为该语句中的“?”占位符赋值。

一次update多条语句

>>> import sqlite3>>> conn = sqlite3.connect('first.db')>>> c = conn.cursor()>>> c.executemany('update user_tb set name=? where _id=?',... (('小孙孙', 2),... ('小白', 3)))
>>> c.rowcount2>>> conn.commit()>>> c.close()>>> conn.close()

在这里插入图片描述

查找

>>> import sqlite3>>> conn = sqlite3.connect('first.db')>>> c = conn.cursor()>>> c.execute('select * from user_tb where _id > ?', (2,))
>>> for col in (c.description):... print(col[0], end='\t')..._id name pass gender >>>>>> while True:... row = c.fetchone()... if not row:... break... print(row)...(3, '小白', '123456', 'female')(4, 'zhu', '123456', 'male')

通过游标还可以使用:fetchone()、fetchmany(n)、fetchall()来获取查询结果。

执行SQL脚本

使用c.executescript()来执行一段SQL脚本。

创建自定义函数

使用conn.create_function()注册自定义函数。

创建聚集函数

标准的SQL语句提供了:sum(),avg(),count(),max(),min().

conn.create_aggregate(name, num_params, aggregate_class)
name:指定自定义聚集函数的名字
num_params:指定聚集函数所需的参数
aggregate_class:指定聚集函数的实现类,该类必须实现step(),finalize()方法,step方法对于查询所返回的每条记录各执行一次,finalize方法只在最后执行一次,该方法返回值将作为聚集函数最后的返回值。

class MinLen:	def __init__(self):		pass	def step(self):		pass	def finalize(self):		pass
conn.create_aggregate('min_len',1,MinLen)c = conn.cursor()c.execute('select min_len(pass) from user_tb')

创建比较函数

conn.create_collation('sub_cmp', my_collate)c = conn.cursor()c.execute('select * from user_tb order by pass collate sub_cmp')
  • 参考文献:《疯狂python讲义》李刚 编

转载地址:https://jiaming.blog.csdn.net/article/details/103529813 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Web开发流程
下一篇:Python使用Faker生成虚拟数据

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月23日 05时48分34秒