几行代码教你操作小型数据库 sqlite

发表于:2024-3-08 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:了不起    来源:Python都知道

  SQLite介绍
  SQLite 是一款轻型、小巧、高效的关系型数据库管理系统,它可以在任何操作系统中运行。而且它的驱动程序也非常丰富,各种语言都有对应的驱动。
  这里我们使用 Python 自带的 sqlite3 模块来演示如何使用 Python 操作 SQLite 数据库。
  引入模块
  使用 Python 操作 SQLite 需要先引入 sqlite3 模块。
  import sqlite3
  连接数据库
  连接 SQLite 数据库可以使用 connect() 方法,它有一个必需参数是数据库文件名,如果文件不存在则会自动创建,如果文件存在则会连接该文件。
  # 连接或创建数据库
  conn = sqlite3.connect('test.db')
  connect() 方法还可以有其他参数,例如 timeout,它表示在等待某个锁的时间内如果没有成功,则会抛出 sqlite3.BusyError 异常。
  创建表
  创建表可以执行 SQL 语句,也可以使用 Python 操作数据库的 API。
  # 创建表
  conn.execute('''
  CREATE TABLE if not exists company
  (ID INT PRIMARY KEY NOT NULL,
  NAME TEXT NOT NULL,
  AGE INT NOT NULL,
  ADDRESS CHAR(50),
  SALARY REAL);
  ''')
  插入数据
  插入数据需要使用 INSERT 语句,语法为:
  conn.execute(f"INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)
                VALUES ({id}, '{name}', {age}, '{address}', {salary})")
  或者使用参数化 SQL 语句,语法为:
  conn.execute("INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY) VALUES (?, ?, ?, ?, ?)", 
               (id, name, age, address, salary))
  其中 ? 表示占位符,后面的元组中为需要插入的数据。
  查询数据
  查询数据需要使用 SELECT 语句,语法为:
  cursor = conn.execute("SELECT ID, NAME, AGE, ADDRESS, SALARY FROM company")
  for row in cursor:
      print(f"ID = {row[0]}, NAME = {row[1]}, AGE = {row[2]}, ADDRESS = {row[3]}, SALARY = {row[4]}")
  更新数据
  更新数据需要使用 UPDATE 语句,语法为:
  conn.execute(f"UPDATE company SET SALARY = {salary} WHERE ID = {id}")
  删除数据
  删除数据需要使用 DELETE 语句,语法为:
  conn.execute(f"DELETE from company where ID = {id}")
  提交事务
  Python 操作 SQLite 数据库自动开启一个事务,如果要提交事务,需要使用 commit() 方法。
  conn.commit()
  关闭数据库连接
  不需要访问数据库时,需要关闭连接。
  conn.close()
  总结
  通过上述代码可以看出,使用 Python 操作 SQLite 数据库非常简单,只需要使用一些简单的 SQL 语句或者 Python API 就可以完成增删改查等操作。SQLite 数据库的优点是体积小、运行速度快,尤其适合一些嵌入式设备或需要大量读写的场景。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号