SQLite数据库基本操作

python SQLite数据库基本操作 python简单操作SQLite数据库,实现简单的增加、修改、查询、删除功能。 阅读详情

一、定义一个合约类(contract class),在里面定义字符表格名,列名等字符串常量,如:

public final class FeedReaderContract {
    // To prevent someone from accidentally instantiating the contract class,
    // give it an empty constructor.
    public FeedReaderContract() {}

    /* Inner class that defines the table contents */
    public static abstract class FeedEntry implements BaseColumns {
        public static final String TABLE_NAME = "entry";
        public static final String COLUMN_NAME_ENTRY_ID = "entryid";
        public static final String COLUMN_NAME_TITLE = "title";
        public static final String COLUMN_NAME_SUBTITLE = "subtitle";
        ...
    }
}

二、定义一个类继承SQLiteOpenHelper类,复写其中的onCreate(),onUpdate()等方法,如:

public class FeedReaderDbHelper extends SQLiteOpenHelper {
    // If you change the database schema, you must increment the database version.
    private static final String TEXT_TYPE = " TEXT";
    private static final String COMMA_SEP = ",";
    private static final String SQL_CREATE_ENTRIES =
    "CREATE TABLE " + FeedEntry.TABLE_NAME + " (" +
    FeedEntry._ID + " INTEGER PRIMARY KEY," +
    FeedEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + COMMA_SEP +
    FeedEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
    ... // Any other options for the CREATE command
    " )";

private static final String SQL_DELETE_ENTRIES =
    "DROP TABLE IF EXISTS " + FeedEntry.TABLE_NAME;
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "FeedReader.db";

    public FeedReaderDbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // This database is only a cache for online data, so its upgrade policy is
        // to simply to discard the data and start over
        db.execSQL(SQL_DELETE_ENTRIES);
        onCreate(db);
    }
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onUpgrade(db, oldVersion, newVersion);
    }
}


为了能访问数据库,实例化该类:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());

1.增

// Gets the data repository in write mode
SQLiteDatabase db = mDbHelper.getWritableDatabase();

// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
values.put(FeedEntry.COLUMN_NAME_ENTRY_ID, id);
values.put(FeedEntry.COLUMN_NAME_TITLE, title);
values.put(FeedEntry.COLUMN_NAME_CONTENT, content);

// Insert the new row, returning the primary key value of the new row
long newRowId;
newRowId = db.insert(
         FeedEntry.TABLE_NAME,
         FeedEntry.COLUMN_NAME_NULLABLE,
         values);

第二个参数是当values参数为空时,应该放置的列名,如果为null,则该条数据不插入。


2.删

// Define 'where' part of query.
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + " LIKE ?";
// Specify arguments in placeholder order.
String[] selectionArgs = { String.valueOf(rowId) };
// Issue SQL statement.
db.delete(table_name, selection, selectionArgs);


3.改

SQLiteDatabase db = mDbHelper.getReadableDatabase();

// New value for one column
ContentValues values = new ContentValues();
values.put(FeedEntry.COLUMN_NAME_TITLE, title);

// Which row to update, based on the ID
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + " LIKE ?";
String[] selectionArgs = { String.valueOf(rowId) };

int count = db.update(
    FeedReaderDbHelper.FeedEntry.TABLE_NAME,
    values,
    selection,
    selectionArgs);


4.查

SQLiteDatabase db = mDbHelper.getReadableDatabase();

// Define a projection that specifies which columns from the database
// you will actually use after this query.
String[] projection = {
    FeedEntry._ID,
    FeedEntry.COLUMN_NAME_TITLE,
    FeedEntry.COLUMN_NAME_UPDATED,
    ...
    };

// How you want the results sorted in the resulting Cursor
String sortOrder =
    FeedEntry.COLUMN_NAME_UPDATED + " DESC";

Cursor c = db.query(
    FeedEntry.TABLE_NAME,  // The table to query
    projection,                               // The columns to return
    selection,                                // The columns for the WHERE clause
    selectionArgs,                            // The values for the WHERE clause
    null,                                     // don't group the rows
    null,                                     // don't filter by row groups
    sortOrder                                 // The sort order
    );

因为数据库操作默认在主线程中进行,所以为了应用良好的响应性,应该在后台线程中进程操作。


Android SQLite数据库基本操作 程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧,仍然以一个小例子开始: 在创建Android项目之前,我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息,为了日后数据库的 阅读详情

相关推荐

SQLite 数据类型机制详解

最后,关于 Type Affinity的匹配规则有两个值得一提的事情,首先匹配是严格按照我们上面写的顺序进行的,也就是说如果你遇到一个 CHARINT的类型名称,它同时匹配了 TEXT和 INTEGER。这就涉及到另外一个概念了。如果是在 SQLite 中,每条记录的 name字段的类型是动态的,也就是说同一张表的不同数据条目中,name字段的类型是可以不同的。为什么说是推荐类型呢,因为我们前面提到过,SQLite 的数据类型是动态的,我们只能给这个字段推荐一个类型,而不能规定这个字段只能是这个类型。

qq_30725967的博客 1948

数据库

一 package com.bwie.newsmonth06.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /**  * Created by eric on 2018/9/1...

weixin_42502772的博客 173

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

leaning_java的博客 1228

C# SQLite 数据库基本操作

c#关于sqlite的基本操作

m0_53707852的博客 9739

从零搭建Obsidian智能知识库:Ollama本地模型与Copilot插件实战指南

本文详细介绍了如何从零搭建Obsidian智能知识库,结合Ollama本地模型与Copilot插件实现高效知识管理。通过本地部署AI助手,用户可以在保证隐私安全的同时,快速检索和整理笔记,提升工作效率。文章涵盖硬件准备、Ollama部署、插件配置及实战技巧,适合需要高效知识管理的专业人士。

weixin_29230773的博客 631

【BigWorld 游戏服务器引擎】Cell 架构设计介绍,及Java实现方案的探索

横向扩展(Scalability):通过动态增减CellApp和BaseApp的数量,可以轻松应对玩家人数的变化。世界可以做得非常大,只需增加更多的 Cell。负载分离(Load Separation):将不同性质的负载分离,避免了单一进程瓶颈。CPU 密集型的实时计算(CellApp)和 I/O 密集型的数据操作(BaseApp)互不影响。高效的视野管理(AOI):每个 Cell 只关心自己区域内和边界上的实体,大大降低了计算复杂度。容错性:某个CellApp。

代码时光 1205

轻型数据库SQLite结合PHP的开发

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

.NET博文收藏 549

数字逻辑设计大程——以撒的结合(Verilog语言)

前言 在大二学习数字逻辑设计课程(即计算机组成课程的前引课)时,期末大程题目我和同组的github成员lwaekfjlk 决定写一款基于Verilog语言的游戏。原型是我们两人都非常喜爱的一款游戏——The Binding of Isaac: Rebirth。在三天三夜的奋战后,基本完成了预期目标。由于亲自编写了其中种种,我们深知新手初期使用Verilog语言有多困难。而可悲的是,这又是之后计算机组成课程和体系结构课程所需的!因此,我们将top部分源码放在这里,供同袍们参考。若想引用还请注明出处。 代码部分

LuvLucifer的博客 1385

数据库(sqlite)基本操作

在多个系统和程序语言之间提供极致的可移植性。

qq_59805046的博客 1965

2025 华为OD机试真题e卷 C语言 实现【竖直四子棋】

竖直四子棋的棋盘是竖立起来的,双方轮流选择棋盘的一列下子,棋子因重力落到棋盘底部或者其他棋子之上,当一列的棋子放满时,无法再在这列上下子。

MISAYAONE的博客 1417

想在 Visual Studio Code 里进行 ABAP 开发,需要安装的扩展列表

安装完毕后,我们可以将 SAP 系统配置为 Visual Studio Code 连接的远程文件系统。为了连接到 SAP 系统,需要启用 ABAP 开发工具 (ADT) ICF 节点,这与 SAP Hana Studio 等工具使用的服务相同。打开 SAP GUI 并连接到目标系统,运行事务 SICF,然后激活 ADT_SRV 服务,如下所示。这启用了允许代码编辑器和 IDE 连接到 SAP 系统的服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3120

sqlite3数据库的基本操作

SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。 它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序。 接口由SQLite C API组成,也就是说不管是程序、脚本语言还是库文件,最终都是通过它与SQLite交互的(我们通常用得较多的ODBC/JDBC最后也会转化为相应C API的调用)。 创建数据...

y果子 3043

YOLOv13改进策略【Head】| 引入RT-DETR中的RTDETRDecoder,替换检测头

本文记录的是基于RTDETRDecoder模块的YOLOv13目标检测改进方法研究。RT-DETR的模块通过,能为解码器提供高质量的初始,从而。相比v13原始的检测头,RT-DETR能,替换后能够更好的提高模型性能。

Limiiiing的博客 434

SQLite3 数据库的基本操作

SQLite3 是一种轻量级的关系型数据库管理系统,常用于移动设备和小型应用程序中。INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);来连接到一个 SQLite3 数据库文件,如果该文件不存在则会创建一个新的数据库文件。INSERT INTO 表名 VALUES (值1,值2,...);UPDATE 表名 SET 列1 = 值1 WHERE 条件;命令来断开与 SQLite3 数据库的连接。断开连接:在完成数据库操作后,可以使用。连接到数据库:使用命令。

qq_51372804的博客 2298

Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置

串行器 +解串器组成,软件需要做的就是写这三部分的驱动,让摄像头数据能到达。3. 配置解串器和串行器的GMSL链路。串行器和解串器上电成功之后,就可以配置。软件配置(注意软件只可以配置速率,2. 9296上电,使能芯片。的版本和速率,比如版本是配置。配置成功之后,就会出现串行器。的链路,其它同类型的。设备地址,我设置的是。...

DSMGUOGUO的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Sqlite3 数据库基本操作

Sqlite3 数据库基本操作1、sqlite3命令**2、sqlite3编程接口:**3、事务:一个或多个更改数据库的扩展4、like和glob子句:5、limit 和 offset6、having:7、distinct8、约束:9、内连接10、别名11、触发器12. 索引 1、sqlite3命令 1.打开数据库: sqlite3 <*.db> 2.系统命令: 以’.'开头 .quit : 退出sqlite3 .help : 查看帮助文档 .database: 显示当前打开的数据库

qq_34934140的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android的SQLite数据库基本操作

记录Android的SQLite数据库基本操作,以便查阅! 1、创建数据库:创建数据库需要使用到SQLiteOpenHelper类,我们自定义一个DatabaseHelper助手类继承SQLiteOpenHelper类 package com.Javen; import android.content.Context; import android.database.sqlite.SQLit

Javen.tang的专栏 860

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SQLite数据库安装及基本操作指南

SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。今天我们主要来讲解下SQLite数据库的安装以及基本操作指南 1. 介绍 SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其

Enn的数据库 969

【SQLite数据库】—— 概念及基本操作

本文摘要:本文系统介绍了数据库基础知识与应用操作。主要内容包括:1)数据库分类与核心概念,重点解析了SQLite嵌入式数据库的特点;2)SQLite常用指令与基本操作,涵盖表创建、增删改查、排序等语法;3)数据库维护命令(导入导出)与可视化工具;4)C语言操作SQLite的编程接口,包括打开/关闭数据库和执行SQL语句的函数使用示例。全文以SQLite为例,详细说明了轻量级数据库的实际应用方法,适合开发者快速掌握数据库基础操作。

2302_81380622的博客 720

sqlite数据库基本操作

资料地址  http://blog.chinaunix.net/uid-26833883-id-3239313.html 安装sqlite3 yum install -y sqlite-devel.x86_64 A.sqlite常用命令介绍 是要打开的数据库文件。若该文件不存在,则自动创建 sqlite3 cwl.db 显示所有命令         sqlite> .

cwl932216856的博客 739

sqlite数据库学习之基本操作

创建数据库:------&gt;sqlite test.db查看表sql结构:------&gt;.schema查看表:------&gt;.tables查看数据库:------&gt;.database对表操作:1.1.创建表:--&gt;create table 表名 (列名1 类型, 列名2 类型, 列名3 类型, 列名4 类型)---&gt;eg:create table human(id...

IT呵呵哒的博客 239

Linux下Sqlite3数据库的基本操作

#include #include #include "sqlite3.h" typedef struct Data { int Id; char* Name; char* Num; }MyData; int callback(void*,int,char**,char**);//回调函数 int main(void) { int res; s

u011859369的专栏 1898
上一篇: Android 文件存储系统
下一篇: App与其他应用交互之隐式意图的使用
ssjj_programmer
博客等级 码龄11年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值