Python数据库模块sqlite3操作实例(非常实用)

这篇具有很好参考价值的文章主要介绍了Python数据库模块sqlite3操作实例(非常实用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当使用Python进行SQLite数据库操作时,sqlite3模块是一个非常常用和强大的工具。它提供了一系列函数和方法,用于创建、连接、查询和管理数据库。下面是一些常见的用法示例:

import sqlite3

#连接到现有数据库Connection个新数据库
conn = sqlite3.connect('stockssqlite3.db')

# 创建内存中的数据库(不保存到磁盘)
# conn = sqlite3.connect(':memory:')
# 获取数据库游标
cursor = conn.cursor()

# 创建表
# cursor.execute('''CREATE TABLE stocks2(date text, symbol text, price real)''')

# 插入数据
# cursor.execute("INSERT INTO stocks2 VALUES ('2023-07-01', 'WL22', 140.34)")
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-02', 'HengDa', 2515.62)")

# 提交更改
conn.commit()

# # 更新数据
cursor.execute("UPDATE stocks SET price =888 WHERE symbol = 'WL'")
# conn.commit()

# 删除数据
cursor.execute("DELETE FROM stocks WHERE symbol = 'HengDa'")
conn.commit()

# 使用参数化查询防止SQL注入
symbol = 'WL'
cursor.execute("SELECT * FROM stocks WHERE symbol=?", (symbol,))
rows2 = cursor.fetchall()
# 遍历查询结果
for row in rows2:
    print('WL: ',row)


# # 开始事务
# conn.execute("BEGIN TRANSACTION")
# # 执行多个操作
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-03', 'MSFT', 278.21)")
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-04', 'AMZN', 3606.02)")

# # 提交事务
# conn.commit()

# 批量插入数据
# data = [('2023-07-05', 'SanAN', 144.50),
#         ('2023-07-05', 'ZXGJ', 2540.10),
#         ('2023-07-05', 'MaoTai', 280.50)]

# cursor.executemany("INSERT INTO stocks VALUES (?, ?, ?)", data)
# conn.commit()

try:
    # 开始事务
    conn.execute("BEGIN TRANSACTION")
    # 执行一些操作
    cursor.execute("INSERT INTO stocks VALUES ('2023-07-06', 'WuHanD', 148.20)")
    cursor.execute("INSERT INTO stocks VALUES ('2023-07-06', 'GOOGL', 2570.80,'55')")
    # 抛出异常,触发回滚
    raise Exception("Some error occurred")
    # 提交事务
    conn.commit()
except Exception as e:
    # 发生异常,回滚事务
    conn.rollback()
    print("Transaction rolled back:", str(e))

# # 使用命名参数化查询
# symbol = 'AAPL'
# price = 150.25
# cursor.execute("SELECT * FROM stocks WHERE symbol=:symbol AND price>=:price", {'symbol': symbol, 'price': price})

# 查询数据
cursor.execute("SELECT * FROM stocks")
rows = cursor.fetchall()
# 遍历查询结果 获取所有行数据
for row in rows:
    print(row)

# 获取部分行数据
cursor.execute("SELECT * FROM stocks2 LIMIT 5")
rows = cursor.fetchmany(3)
for row in rows:
    print('stocks2 fetchmany(3): ',row)

# 获取查询结果的列信息
cursor.execute("SELECT * FROM stocks")
columns = [description[0] for description in cursor.description]
print(columns)

# 创建索引
# cursor.execute("CREATE INDEX idx_symbol ON stocks (symbol)")
conn.commit()
# 执行查询(使用索引)
cursor.execute("SELECT * FROM stocks WHERE symbol = 'WK'")
result = cursor.fetchall()
print(result)

# 创建触发器
# 该语句指定了触发器的名称update_price
# 触发的事件AFTER UPDATE OF price ON stocks,以及在触发时要执行的操作。
# 触发器是强大的数据库功能,可以用于在特定事件发生时自动执行复杂的操作。它们可以用于实现数据完整性约束、记录日志、更新其他表的数据等
# cursor.execute("""
#     CREATE TRIGGER update_price
#     AFTER UPDATE OF price ON stocks
#     BEGIN
#         -- 触发时执行的操作
#         UPDATE stocks2 SET price = 5555 WHERE symbol = 'WL22';
#     END
# """)
# conn.commit()

# # 删除触发器
# cursor.execute("DROP TRIGGER IF EXISTS update_price")

# # 提交更改
# conn.commit()

# 查询触发器信息
cursor.execute("SELECT name, tbl_name, sql FROM sqlite_master WHERE type='trigger'")
triggers = cursor.fetchall()

# 打印触发器信息
for trigger in triggers:
    name, tbl_name, sql = trigger
    print(f"Name: {name}")
    print(f"Table: {tbl_name}")
    print(f"SQL: {sql}")
    print("-" * 30)
# 获取数据库版本号
cursor.execute("SELECT sqlite_version()")
version = cursor.fetchone()[0]
print("SQLite version:", version)

# 获取数据库中的表列表
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
tables = cursor.fetchall()
for table in tables:
    print("Table name:", table[0])

# 获取表的列信息
cursor.execute("PRAGMA table_info(stocks)")
columns = cursor.fetchall()
for column in columns:
    print("Column name:", column[1])
    print("Column type:", column[2])
# 定义用户自定义函数
def calculate_total(a, b):
    return a + b

# 注册用户自定义函数
conn.create_function("total", 2, calculate_total)

# 使用用户自定义函数
cursor.execute("SELECT total(10, 5)")
result = cursor.fetchone()[0]
print("Total:", result)
import re

# 创建自定义函数来进行正则表达式匹配
def regex_match(pattern, string):
    return bool(re.match(pattern, string))

# 注册自定义函数
conn.create_function("regex_match", 2, regex_match)

# 使用正则表达式进行查询
cursor.execute("SELECT * FROM my_table WHERE regex_match('^A.*', name)")
import sqlite3

# 连接到数据库
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

# 删除触发器
cursor.execute("DROP TRIGGER IF EXISTS update_price")

# 提交更改
conn.commit()

# 关闭连接
conn.close()

 

import sqlite3

# 连接到数据库
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

# 查询触发器信息
cursor.execute("SELECT name, tbl_name, sql FROM sqlite_master WHERE type='trigger'")
triggers = cursor.fetchall()

# 打印触发器信息
for trigger in triggers:
    name, tbl_name, sql = trigger
    print(f"Name: {name}")
    print(f"Table: {tbl_name}")
    print(f"SQL: {sql}")
    print("-" * 30)

# 关闭连接
conn.close()

sqlite-utilssqlitebiter和其他类似的库可以提供更高级的功能,包括预编译语句的执行优化和数据库连接池的管理。这些库可以作为sqlite3模块的扩展,提供更便捷和高效的SQLite数据库操作。下面是这些库的简要介绍:

  1. sqlite-utils:它是一个Python库,提供了许多工具和功能来简化SQLite数据库的操作。它支持创建、连接、查询和管理数据库,还提供了高级功能,如预编译语句的执行优化、数据导入导出、数据库迁移等。你可以使用sqlite-utils来执行高级操作,以提高SQLite数据库的性能和功能。

  2. sqlitebiter:它是一个命令行工具和Python库,用于将不同的数据源(如CSV、Excel、JSON等)转换为SQLite数据库。它可以自动推断表结构,并将数据导入SQLite数据库中。sqlitebiter还提供了选项来优化导入过程,包括使用预编译语句和批量插入等。这使得数据导入过程更快速和高效。文章来源地址https://www.toymoban.com/news/detail-546117.html

到了这里,关于Python数据库模块sqlite3操作实例(非常实用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)

    嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)

    目录 前言 一、sqlite概念和特性 二、sqlite安装 三、sqlite3数据类型  四、sqlite数据库约束 五、sqlite常用命令  六、SQL语句(增删改查) 七、sqlite使用实例(教学管理数据库) 总结 数据在实际工作中应用非常广泛,数据库的产品也比较多,oracle、DB2、SQL2000、mySQL;基于嵌入式

    2024年02月08日
    浏览(8)
  • 数据库--Sqlite3

    数据库--Sqlite3

     1、思维导图  2sqlite3在linux中是实现数据的增删,改 #includemyhead.h int main(int argc, const char *argv[]) {         //1、定义一个数据库句柄指针         sqlite3* ppDb =NULL;         //2、创建或打开数据库         if(sqlite3_open(\\\"./mydb.db\\\",ppDb)!=SQLITE_OK)         {                 printf(

    2024年04月27日
    浏览(14)
  • sqlite3数据库的实现

    sqlite3代码实现数据库的插入、删除、修改、退出功能

    2024年02月12日
    浏览(14)
  • SQlite3数据库相关相关命令

    SQlite3数据库相关相关命令

    1. 创建表格 2. 插入数据 3. 查看数据库记录 4. 删除信息 5. 更新数据 6. 增加一列 7. 删除一列 (sqlite3 不支持直接删除一列) 1. 打开数据库 2. 关闭数据库 3. 错误信息 4. 执行一条sql语句 5. 查询回调函数 6. 查询函数 小知识:如果结构体中定义的是一级指针,那么你要定义变量取

    2024年02月16日
    浏览(9)
  • sqlite3将词典导入数据库

    使用sqlite3代码实现将词典导入数据库中

    2024年02月12日
    浏览(10)
  • 02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 (1)安装SQLite3软件 sudo apt-get install sqlite3 (2)安装库文件 sudo apt-get install libsqlite3-dev 安装成功后输入sqlite3查看 (3)安装sqlite3可

    2024年02月11日
    浏览(16)
  • 嵌入式数据库之sqlite3

    嵌入式数据库之sqlite3

            数据:能够输入计算机并能被计算机程序识别和处理的信息集合。         数据库:数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。 1.大型数据库         Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作

    2024年02月10日
    浏览(10)
  • 【嵌入式数据库之sqlite3】

    目录 一.数据库基本概念(理解) 1.数据 2.数据库 二.常用的数据的数据库(了解) 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库(了解) 四.SQLite基础(了解) 五.创建数据库(熟练) 1.手工创建 2.代码创建 六.SQLite编程接口 七.代码示例(学生管理系统) 八

    2024年02月09日
    浏览(7)
  • SQLite3数据库的介绍和使用(面向业务编程-数据库)

    SQLite是一种用C语言实现的的SQL数据库 它的特点有:轻量级、快速、独立、高可靠性、跨平台 它广泛应用在全世界范围内的手机电脑应用的内建数据库 官网地址:https://www.sqlite.org/index.html SQLite因为其采用文件存储,且容易移植。在嵌入式中应用非常广泛,可以说是嵌入式业

    2024年02月02日
    浏览(14)
  • 【C++】开源:sqlite3数据库配置使用

    【C++】开源:sqlite3数据库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍sqlite3数据库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/sqlite/sqlite SQLite 是一种嵌入式

    2024年02月14日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包