SQLite 快速入门:基础知识与 Python 实战
SQLite 快速入门基础知识与 Python 实战什么是SQLiteSQLite是一个进程内的库实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库这意味着与其他数据库不一样您不需要在系统中配置。就像其他数据库SQLite 引擎不是一个独立的进程可以按应用程序需求进行静态或动态连接。SQLite 不经过数据库服务器而是由应用程序直接读写数据库文件。SQLite有什么优点不需要一个单独的服务器进程或操作的系统无服务器的。SQLite 不需要配置这意味着不需要安装或管理。一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。SQLite 是非常小的是轻量级的完全配置时小于 400KiB省略可选功能配置时小于250KiB。SQLite 是自给自足的这意味着不需要任何外部的依赖。SQLite 事务是完全兼容 ACID 的允许从多个进程或线程安全访问。SQLite 支持 SQL92SQL2标准的大多数查询语言的功能。SQLite 使用 ANSI-C 编写的并提供了简单和易于使用的 API。SQLite 可在 UNIXLinux, Mac OS-X, Android, iOS和 WindowsWin32, WinCE, WinRT中运行。经典应用场景一些人认为SQLite只能做玩具实际上这是错误的。本地、离线、单程序读写、轻量存储的软件几乎都会内置 SQLite。我们可以看下现有的应用场景桌面软件浏览器缓存与数据存储Chrome、Edge、Firefox 全部用 SQLite 存历史记录、Cookie、书签、下载记录、账号表单密码缓存。每个用户配置文件夹里一堆.sqlite文件。社交软件微信电脑版、QQ聊天记录、本地缓存、文件索引全部存在 SQLite开发工具VS Code、JetBrains IDEIDEA、PyCharm插件配置、打开文件历史、项目缓存Git 客户端存储提交记录缓存。移动端APP安卓原生 APP 默认本地存储用 SQLite微信、抖音、小红书本地缓存聊天、浏览记录、本地草稿iOSiPhone/iPad底层同样封装 SQLite嵌入式设备设备算力弱、无独立数据库服务SQLite 完美适配。工业工控小设备、门禁、打卡机本地存储打卡日志、人员信息路由器、监控摄像头设备日志、录像索引、设备连接记录在Python中使用SQLitesqlite3是 Python 的标准库安装 Python 时就已经自带了。在你使用sqlite3库时你不需要在你电脑上下载sqlite因为Python 内部自带了一个完整的 SQLite 引擎。主要函数介绍sqlite3.connect()→ 返回sqlite3.Connection返回类型sqlite3.Connection对象作用代表与 SQLite 数据库文件的连接。它是整个数据库交互的入口。主要功能管理事务commit()提交、rollback()回滚创建游标cursor()方法直接执行 SQLexecute()、executemany()等关闭连接close()conn.cursor()→ 返回sqlite3.Cursor返回类型sqlite3.Cursor对象作用在连接之上执行 SQL 语句并获取结果。它是执行查询和遍历结果集的游标/指针。主要功能执行 SQLexecute()、executemany()、executescript()获取查询结果fetchone()取一条、fetchall()取全部、fetchmany(n)取 N 条使用SQLite进行简单的CRUD连接数据库下面的 Python 代码显示了如何连接到一个现有的数据库。如果数据库不存在那么它就会被创建最后将返回一个数据库对象。importsqlite3 connsqlite3.connect(test.db)print(数据库打开成功)在这里您也可以把数据库名称修改为特定的名称:memory:这样就会在 RAM内存 中创建一个数据库**:memory:是临时数据库进程结束就消失不持久化。**如下面的 Python 代码。importsqlite3 connsqlite3.connect(:memory:)print(数据库打开成功)接下来的创建表和CRUD操作都以持久化数据库为例。:memory:临时数据库的创建表和相关CRUD操作也与接下来的代码几乎一致区别只有conn sqlite3.connect(:memory:)创建表它会在test.db中创建 COMPANY 表defcreate_table():connsqlite3.connect(example.db)print(Creating table in the database...)print(Opened database successfully)cconn.cursor()c.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);)print(Table created successfully)conn.commit()conn.close()INSERT 操作它会在 COMPANY 表中创建给定记录definsert_data():connsqlite3.connect(example.db)print(Inserting data into the database...)print(Opened database successfully)cconn.cursor()c.execute(INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(1,Paul,32,California,20000.00))c.execute(INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(2,Allen,25,Texas,15000.00))c.execute(INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(3,Teddy,23,Norway,20000.00))c.execute(INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(4,Mark,25,Rich-Mond ,65000.00))conn.commit()print(Records created successfully)conn.close()SELECT 操作defquery_data():connsqlite3.connect(example.db)print(Querying data from the database...)print(Opened database successfully)cconn.cursor()cursorc.execute(SELECT id, name, address, salary from COMPANY)forrowincursor:print(ID ,row[0])print(NAME ,row[1])print(ADDRESS ,row[2])print(SALARY ,row[3],\n)print(Querying Operation done successfully)conn.close()UPDATE操作defupdate_data():connsqlite3.connect(example.db)print(Updating data in the database...)print(Opened database successfully)cconn.cursor()c.execute(UPDATE COMPANY set SALARY 25000.00 where ID 1)conn.commit()print(Total number of rows updated :,conn.total_changes)conn.close()DELETE操作defdelete_data():connsqlite3.connect(example.db)print(Deleting data from the database...)print(Opened database successfully)cconn.cursor()c.execute(DELETE from COMPANY where ID 2;)conn.commit()print(Total number of rows deleted :,conn.total_changes)conn.close()代码仓库包含持久化和非持久化的使用示例PersonalViolet/sqlite-demo参考博客SQLite – Python | 菜鸟教程

相关新闻

最新新闻

日新闻

周新闻

月新闻