SQLite数据库中系统表介绍及应用相关

【C语言数据库】Sqlite3基础介绍 Sqlite3基础介绍与代码案例。 阅读详情

作者:Val


       首先使用sqlite manager工具将课堂实验中建立的数据库people.db打开,观察其结构。sqlite-manager是firefox上的一个插件,用来管理sqlite类型的数据库,使用方便。下载安装地址https://addons.mozilla.org/zh-CN/firefox/addon/sqlite-manager/




sqlitemanager打开people.db后的结构如上图所示。可以看到其中包含一个Master Table :sqlite_master ,三个普通Table:android_metadata, peopleinfo ,sqlite_sequence 。其中peopleinfo是我们自己建立的用户表。由于我们没有建立视图、索引和触发器,所以相应内容为空。

下面我主要就sqlite_master , android_metadata, sqlite_sequence三个系统自动生成的表来进行一下介绍。

 

SQLITE_MASTER

 

每一个 SQLite 数据库都有一个对应的 SQLITE_MASTER 表, 它定义了数据库的模式。

SQLITE_MASTER表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATETABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自动更新。

SQLITE_MASTER表结构如下:





    对于表来说,type 字段是 ‘table’,name 字段是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句:

 

SELECT name FROM sqlite_master
WHERE type=’table’
ORDER BY name;

 

对于索引,type 字段是 ‘index’, name 则是索引的名字,tbl_name 是该索引所属的表的名字。视图和触发器类似。

不管是表还是索引,sql 字段是原先用 CREATE TABLE 或 CREATE INDEX 语句创建它们时的命令文本。对于自动创建的索引(用来实现 PRIMARY KEY 或 UNIQUE 约束),sql字段为NULL。

临时表不会出现在 SQLITE_MASTER 表中。临时表及其索引和触发器存放在另外一个叫 SQLITE_TEMP_MASTER 的表中。SQLITE_TEMP_MASTER跟 SQLITE_MASTER 差不多, 但它只是对于创建那些临时表的应用可见。如果要获得所有表的列表, 不管是永久的还是临时的,可以使用类似下面的命令:

 

SELECT name FROM
(SELECT * FROM sqlite_master UNION ALL
SELECT * FROM sqlite_temp_master)
WHERE type=’table’
ORDER BY name;

 

ANDROID_METADATA

 

该表只包含一个字段locale,记录语言和地域信息,虽然简单但是必不可少。如果发现其被不小心删除,可以手工创建一个android_metadata

SQL语句如下:

 

createtable android_metadata(locale text);

insertinto android_metadata(locale) values("zh_CN");

 

SQLITE_SEQUENCE

 

当数据库中包含自动编号的字段(integer primary key autoincrement)时,SQLite会自动建立一个名为 sqlite_sequence 的表。这个表包含两个字段:name 和 seq 。name字段记录了自动编号字段所在的表,seq字段记录了当前用到的序号(下一条记录的编号就是当前序号加1)。

在开发过程中,我们经常要把表重置。也就是说把表中的记录全部清空,并把自动编号的字段归0。如果删除表中数据后不把sqlite_sequence中的seq字段归0,那么下次再插入新的数据段时自动编号的字段会从上次使用过的最大标号处开始赋值。这时,我们需要自己修改 sqlite_sequence 表:

    将当前用到编号置零,标号会从1开始递增。SQL语句如下:

UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName' ;

也可以直接把该记录删掉:

DELETE FROM sqlite_sequence WHERE name = 'TableName' ;

要是想重置所有表,直接把 sqlite_sequence 清空就可以了:

DELETE FROM sqlite_sequence;

    删除掉后sqlite_sequence会自动生成。

 


Android Studio 使用插件Database Navigation 连接 sqlite数据库 Database Navigation 是一款在 Android Studio 开发环境中非常实用的插件,它主要致力于帮助开发者更便捷、高效地管理和操作数据库,尤其是在 Android 项目涉及到数据库相关开发工作时,能够提升开发体验与效率。 阅读详情

相关推荐

Android数据库:SQLite除了.db文件,还多出.db-shm,.db-wal文件

Android数据库:SQLite除了.db文件,还多出.db-shm,.db-wal文件 使用安卓数据库保存文件时,在Android Studio 的 Device File Explorer里数据库文件目录 /data/data/com.urovo.datatopc/databases/DATA.db 发现其目录下不仅有.db文件,还有两个其他文件 .db-shm和.db-wal文件 而且数据库存储文件DATA.db(这是我的数据库名字,你们的可能不一样)保存至本地,通过SQLite Develope

m0_53581523的博客 4940

数据库——sqlite3

SQLite是一个进程内的库,实现了自给自足、无服务器、零配置、事务性的SQL数据库引擎。无需安装和管理配置;储存在单一磁盘文件中的一个完整数据库;数据库可以在不同字节顺序的机器间共享;支持数据库大小之2TB;足够小,全部源码大约3万c代码,250KB;比目前流行的大多数数据库对数据的操作要快。(1)系统命令(点命令) 常用点命令(2)sql命令 数据定义语言(对整个表的操作,创建、修改、删除):CREATE、ALTER、DROP 数据操作语言(对整个表中的记录的操作,创建、修改、删除):数据查询语言: s

m0_73492050的博客 1970

使用 SQLite 数据库实现简单的数据管理系统

本项目的目的是利用 SQLite 数据库构建一个简单的数据管理系统。SQLite 是一种轻量级的嵌入式数据库,无需单独的服务器进程,非常适合小型应用程序。本数据管理系统将涵盖基本的数据操作,如数据的插入、查询、更新和删除,适用于需要对少量数据进行简单管理的场景,例如个人信息管理、小型业务数据记录等。本文将首先介绍 SQLite 的核心概念和相关联系,包括其架构和工作原理。接着详细讲解使用 Python 操作 SQLite 数据库的核心算法原理和具体步骤。

2502_91592937的博客 1058

sqlite系统表介绍(查询数据库中所有的表 查询表中的所有字段)

每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 里面存储着数据库的数据结构(表结构、视图结构、索引结构等),只可以对他使用查询语句 SQLITE_MASTER 表DDL信息如下: CREATE TABLE sqlite_master (type TEXT,name TEXT,tbl_name TEXT,rootpage INTEGER,sql TEXT); typ

nailsoul的专栏 1万+

【python3】 sqlite格式的db文件获得所有表和数据

SQLite 格式的 .db 文件通常存储的是一个关系型数据库。你可以使用图形化工具(如 DB Browser for SQLite)或命令行工具(如 sqlite3)来查看数据库的结构和内容。此外,使用 Python 的 sqlite3 库也是一个很方便的方式来访问和操作 SQLite 数据库。

jn10010537的博客 1322

掌握SQLite:使用DB Browser访问微信Android数据库

加密技术是信息安全的核心,旨在将明文数据转换为难以理解的密文形式,只有拥有正确密钥的用户才能解读这些数据。加密过程通常涉及两个主要组件:算法和密钥。数据库是现代软件应用不可或缺的组成部分,用于存储和管理数据。SQLite作为一个轻量级的数据库,被广泛应用于移动应用和桌面应用中。DB Browser for SQLite是一个开源工具,它允许用户直观地浏览和编辑SQLite数据库文件。本章将介绍DB Browser的功能,如何进行基本操作,并分享一些使用技巧。

weixin_31715353的博客 2440

关于sqlite中系统表sqlite_master

sqlite_master CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT ); 表 对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句: SELECT n...

a3320315的博客 747

安卓db数据库查看工具——快速管理与分析SQLite数据库

SQLite 是 Android 内置的轻量级关系型数据库管理系统,为 Android 应用提供了一种高效、便捷的数据持久化方案。与传统的关系型数据库不同,SQLite 将数据库存储在文件系统中的单一文件内,从而简化了数据库的部署和管理。SQLite 支持标准的 SQL 语言,允许在没有服务器进程的情况下进行数据库操作,这使得它非常适合于资源有限的移动设备环境。在 Android 应用开发中,SQLite 数据库常用于本地数据存储、用户个性化设置记录以及应用内缓存。

weixin_32869687的博客 1941

sqlite的系统表sqlite_master

SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 SQLITE_MASTER 表看起来如下: CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT,...

weixin_34100227的博客 730

如何在R中高效安装ropls及其依赖包

本文详细介绍了在R语言中高效安装ropls包及其依赖的完整流程。作为Bioconductor生物信息学分析包,ropls的安装需通过BiocManager管理器进行。文章提供了标准安装步骤、跨系统避坑指南及安装后验证方法,帮助用户解决R版本、编译环境和网络镜像等常见问题,确保代谢组学数据分析工具顺利部署。

efc123456的博客 908

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1926

ubuntu上安装和使用sqlite数据库

本文参考了:http://blog.youkuaiyun.com/jianchi88/article/details/7037524 安装和使用数据库系统Sqlite3 安装数据库系统Sqlite3: apt-get install sqlite sqlite3 检查数据库安装结果: sqlite3 test.db .database .exit 提供下面的命令我们应该可以看到文件test.d

固本培元的专栏 3624

实用电路精讲系列---ACDC开关电源

AC/DC开关电源工作原理及应用解析 AC/DC开关电源通过高频开关技术将交流电转换为稳定直流电,核心流程包括整流滤波、高频开关转换、反馈稳压和隔离保护。典型应用涵盖智能断路器、车载充电机、光伏逆变器等多个领域,采用不同拓扑结构和功率器件满足各场景需求。文章详细分析了基于LT1103的实用电路,包含输入整流、开关稳压、多级滤波等关键模块,并阐述了同步整流和多级滤波对提升效率稳定性的作用。这种电源技术通过高频开关切换+变压器耦合+闭环反馈,实现了高效紧凑的电能转换,在各工业领域具有广泛应用价值。

weixin_40590799的博客 2584

QT下SQLite应用(二)

Qt是一个跨平台的C++应用程序开发框架,它提供了丰富的库和工具,用于开发GUI应用程序、

weixin_64581379的博客 1718

IEEE69节点数据(Matlab)

IEEE69节点数据(Matlab)

weixin_46039719的博客 1162

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 2944

c#操作轻型数据库SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两

ghevinn欢迎您光临 1869

深度学习与西储大学轴承数据集(一)

西储大学数据集介绍

weixin_50642818的博客 1万+

要查看 SQLite 数据库中的所有表,可以通过查询 SQLite 的系统表 sqlite_master

每个 SQLite 数据库都包含一个名为 sqlite_master 的系统表。该表定义了数据库的模式,存储了数据库中所有表、索引、视图和触发器等对象的信息。通过查询 sqlite_master,您可以获取数据库结构的详细信息,例如列出所有表的名称。

陈开心的博客 2456

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SQLite .db多文件合并

SQLite .db多文件合并

weixin_42268572的博客 4669

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQLite的系统表SQLITE_MASTER

一、SQLITE_MASTER的简介 SQLite数据库中有一个内置表,名为SQLITE_MASTER,此表中存储着当前数据库中所有表的相关信息,比如表的名称、用于创建此表的sql语句、索引、索引所属的表、创建索引的sql语句等。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 二、SQLITE_MASTER的表结构 ...

qq_32572085的博客 1075

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Android Location的使用
下一篇: 利用service实现音乐的后台播放
pku_android
博客等级 码龄15年 450粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值