轻松掌握SQLite数据库:入门指南 (怎么用sqlite数据库)

如果你曾经涉及过开发应用程序,那么你肯定已经听说过数据库。在现代应用程序中,数据库发挥着至关重要的作用,帮助我们管理数据、提高应用程序性能并提供高效的访问方式。但是对于许多初学者来说,数据库可能会变得非常困难和复杂。幸运的是,SQLite数据库是一种简单易用的解决方案,旨在使学习数据库变得更容易。在本文中,我们将介绍如何入门SQLite数据库,帮助你轻松地开始。

什么是SQLite数据库?

SQLite数据库是一种开源的,自包含的,轻量级的关系型数据库管理系统。它是世界上最广泛使用的数据库之一,用于管理全球数十亿个设备上的数据。SQLite数据库可以为各种编程语言提供API,并且对于桌面应用程序和移动设备应用程序来说,SQLite数据库是一个流行的选择。它的优点在于它可以在应用程序中直接嵌入,不需要单独的服务器。

准备工作

你需要从SQLite的官方网站(https://www.sqlite.org/download.html)下载最新版本的SQLite。从该网站下载可用的Windows、MacOS和Linux版本,并按照说明进行安装,以便在计算机上使用SQLite命令行界面工具。如果你使用Linux或MacOS,则可以通过终端运行SQLite。如果你使用Windows,则可以运行命令提示符(cmd)。

建立连接

一旦你安装并设置好SQLite,你可以使用以下命令之一与SQLite数据库建立连接:

sqlite3 filename.sqlite # 连接到现有数据库

sqlite3 # 创建一个新的(临时的)SQLite数据库

这将打开SQLite shell,并让你与数据库进行交互。在Linux和MacOS上,你需要在命令行输入sqlite3,然后使用“.open filename.sqlite”命令连接到现有数据库或创建新的数据库。

在Windows上,你需要在CMD或Powershell中键入sqlite3.exe并按回车,就像在Linux或MacOS上一样,该命令将打开SQLite shell。

创建表格

现在我们已经建立了与SQLite数据库的连接,在继续详细介绍SQLite之前,我们需要创建一些表格。表格是数据库中最基本的组成部分,用于存储数据。如此重要的数据库对象,你不想错过它!

要创建一个表格,你可以使用以下命令:

CREATE TABLE table_name (

column1 datatype [PRIMARY KEY],

column2 datatype,

column3 datatype,

…..

columnN datatype

);

“table_name”是你想要创建表格的名称。“column1”到“columnN”是你想要创建的列名。在SQLite中,你可以创建各种不同的数据类型,例如INTEGER、TEXT、BLOB和NULL。在创建列时,请确保指定正确的数据类型以匹配要存储的数据类型。

要为表格设置主键,请在列旁边的数据类型后面添加“PRIMARY KEY”关键字。这将确保该列中的数据在表格中是唯一的,并可以更快地进行搜索和排序。

例子:

我们将创建一个名为“employees”的表格,该表格具有以下列:

– employee_id – 主键,整数类型

– first_name – 文本类型

– last_name – 文本类型

– job_title – 文本类型

– hire_date – TEXT类型

要执行上述操作,请使用以下命令:

CREATE TABLE employees(

employee_id INTEGER PRIMARY KEY,

first_name TEXT,

last_name TEXT,

job_title TEXT,

hire_date TEXT

);

插入数据

一旦我们已经创建了一个表格,接下来就是在表格中插入数据。要插入数据,请使用以下命令:

INSERT INTO table_name (column1, column2, column3,….,columnN)

VALUES (value1, value2, value3,….,valueN);

“table_name”是要插入数据的表格名称。“column1”到“columnN”是列名称。“value1”到“valueN”是针对每列的值。确保需要插入的值的顺序与列的顺序相同。

例如,要将一个名为“John”的新用户添加到我们的“employees”表格中,可以使用以下命令:

INSERT INTO employees (first_name, last_name, job_title, hire_date)

VALUES (‘John’, ‘Doe’, ‘Web Developer’, ‘2023-01-01’);

查询数据

在此之后,我们希望从表格中检索数据。要检索数据,请使用以下命令之一:

– SELECT:从一个或多个表格中检索数据。

– WHERE:与SELECT命令结合使用,指定搜索条件。

示例:

要检索“employees”表格中所有数据,请使用以下命令:

SELECT * FROM employees;

在这种情况下,星号表示从所有列中选择。如果你只需要查看特定列,可以使用以下命令:

SELECT first_name, last_name, job_title FROM employees;

这将仅对“first_name”、“last_name”和“job_title”列进行选择。

如果你只想检索表格中特定条件的行,则可以使用“WHERE”子句来指定搜索条件。例如,如果我们要检索“employees”表格中所有职位为“Web Developer”的员工,则可以使用以下命令:

SELECT * FROM employees WHERE job_title = ‘Web Developer’;

更新数据

有时候我们需要更新已有数据,你可以使用以下命令之一更新数据:

– UPDATE:更新表格中的行。

– SET:与UPDATE命令结合使用,指定要更新的列和新值。

– WHERE:与UPDATE命令结合使用,指定要更新的行(或行)。

例如,要将“John”在“employees”表格中的工作职位更改为“Mobile Developer”,可以使用以下命令:

UPDATE employees SET job_title = ‘Mobile Developer’ WHERE first_name = ‘John’ AND last_name = ‘Doe’;

删除数据

如果我们需要删除已有数据,可以使用以下命令删除数据:

DELETE FROM table_name WHERE condition;

“table_name”是要删除数据的表格名称。“condition”是一个用于指定要删除哪些行的条件。

例如,如果我们想从“employees”表格中删除所有职位为“Web Developer”的行,则可以使用以下命令:

DELETE FROM employees WHERE job_title = ‘Web Developer’;

结论

SQLite非常适合开发应用程序并学习数据库。这个入门指南涵盖了SQLite最基本的命令,包括建立数据库连接、创建表格、插入、查询、更新和删除数据。当然,SQLite还有更高级的操作,如使用JOIN操作连接多个表、创建索引和视图等。这里只是为你提供了一些基础知识,帮助你开始学习SQLite数据库。希望你现在能够准备好开始使用SQLite并开始构建下一个应用程序!

相关问题拓展阅读:

如何在android中使用sqlite数据库

android 中SQliteDatabase数据库使用SQLiteOpenHelper辅助类来创建SQLite数据库视图,如下代码:

create view 表名 as 定义

SQLiteOpenHelper类是一个辅兄饥助类,用轮亏于创建或打开数据库。

该类的使用方法一般是自定义一个子类,继承自SQLiteOpenHelper,并覆写其中最关键的两个方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。当新建一个数据库时会调用前者,一般在里面做一些创建表或视图的操作。数据库版本升级时则会调用后者。羡桐返

定义好子类后(假如叫SqlHelper),只要调用SqlHelper对象的getReadableDatabase()方法或getWritableDatabase()方法即可返回一个SQLiteDatabase对象。如果是之一次调用,则会创建数据库。随后可使用SQLiteDatabase对象的方法进行数据操作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。

Android开发中使用SQLite 数据库

SQPte 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQPte.

SQPte 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQPte 通过利用虚拟机和虚拟数据库引擎团搭(VDBE),使调试、修改和扩展 SQPte 的内核变得更加方便。

SQPte 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQPte。

SQPte 和其他数据库更大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQPte 将检查它的类型。如果该类型与关联的列不匹配,则 SQPte 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQPte 称这为“弱类型”(manifest typing.)。

此外,SQPte 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FPL OUTER JOIN, 还有一些 ALTER TABLE 功能。

除了上述功能外戚孝,SQPte 是一个完整的 SQL 系统,拥有完整的触发器,交易等等。

Android 集成了 SQPte 数据库

Android 在运行时(run-time)集成了 SQPte,所以每个 Android 应用程序都可以使用 SQPte 数据库。对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQPte 相当简单。但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。因塌仔拿此,Android 提供了一些新的 API 来使用 SQPte 数据库,Android 开发中,程序员需要学使用这些 API。

数据库存储在 data/ 项目文件夹 /databases/ 下。

Android 开发中使用 SQPte 数据库

Activites 可以通过 Content Provider 或者 Service 访问一个数据库。下面会详细讲解如果创建数据库,添加数据和查询数据库。

创建数据库

Android 不自动提供数据库。在 Android 应用程序中使用 SQPte,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQPteOpenHelper 帮助你创建一个数据库,你只要继承 SQPteOpenHelper 类,就可以轻松的创建数据库。SQPteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQPteOpenHelper 的子类,至少需要实现三个方法:

构造函数,调用父类 SQPteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 NPl),一个代表你正在使用的数据库模型版本的整数。

onCreate()方法,它需要一个 SQPteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

onUpgrage() 方法,它需要三个参数,一个 SQPteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

下面示例代码展示了如何继承 SQPteOpenHelper 创建数据库:

pubPc class DatabaseHelper extends SQPteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)

{

super(context, name, cursorFactory, version);

}

@Override

pubPc void onCreate(SQPteDatabase db) {

// TODO 创建数据库后,对数据库的操作

}

@Override

pubPc void onUpgrade(SQPteDatabase db, int PdVersion, int newVersion) {

// TODO 更改数据库版本的操作

}

@Override

pubPc void onOpen(SQPteDatabase db) {

super.onOpen(db);

// TODO 每次成功打开数据库后首先被执行

}

}

接下来讨论具体如何创建表、插入数据、删除表等等。调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQPteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == nPl) ? false : true;

上面这段代码会返回一个 SQPteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。

当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQPteDatabase 的 Close() 方法来释放掉数据库连接。

创建表和索引

为了创建表和索引,需要调用 SQPteDatabase 的 execSQL() 方法来执行 DDL 语句。如果没有异常,这个方法没有返回值。

例如,你可以执行如下代码:

db.execSQL(“CREATE TABLE mytable (_id INTEGER PRIMARY KEY

AUTOINCREMENT, title TEXT, value REAL);”);

这条语句会创建一个名为 mytable 的表,表有一个列名为 _id,并且是主键,这列的值是会自动增长的整数(例如,当你插入一行时,SQPte 会给这列自动赋值),另外还有两列:title( 字符 ) 和 value( 浮点数 )。 SQPte 会自动为主键列创建索引。

通常情况下,之一次创建数据库时创建了表和索引。如果你不需要改变表的 schema,不需要删除表和索引 . 删除表和索引,需要使用 execSQL() 方法调用 DROP INDEX 和 DROP TABLE 语句。

给表添加数据

上面的代码,已经创建了数据库和表,现在需要给表添加数据。有两种方法可以给表添加数据。

像上面创建表一样,你可以使用 execSQL() 方法执行 INSERT, UPDATE, DELETE 等语句来更新表的数据。execSQL() 方法适用于所有不返回结果的 SQL 语句。例如:

db.execSQL(“INSERT INTO widgets (name, inventory)”+

“VALUES (‘Sprocket’, 5)”);

另一种方法是使用 SQPteDatabase 对象的 insert(), update(), delete() 方法。这些方法把 SQL 语句的一部分作为参数。示例如下:

ContentValues cv=new ContentValues();

cv.put(Constants.TITLE, “example title”);

cv.put(Constants.VALUE, SensorManager.GRAVITY_DEATH_STAR_I);

db.insert(“mytable”, getNPlCPumnHack(), cv);

update()方法有四个参数,分别是表名,表示列名和值的 ContentValues 对象,可选的 WHERE 条件和可选的填充 WHERE 语句的字符串,这些字符串会替换 WHERE 条件中的“?”标记。update() 根据条件,更新指定列的值,所以用 execSQL() 方法可以达到同样的目的。

WHERE 条件和其参数和用过的其他 SQL APIs 类似。例如:

String parms=new String {“this is a string”};

db.update(“widgets”, replacements, “name=?”, parms);

delete() 方法的使用和 update() 类似,使用表名,可选的 WHERE 条件和相应的填充 WHERE 条件的字符串。

#p#副标题#e#

查询数据库

类似 INSERT, UPDATE, DELETE,有两种方法使用 SELECT 从 SQPte 数据库检索数据。

1 .使用 rawQuery() 直接调用 SELECT 语句;

使用 query() 方法构建一个查询。

Raw Queries正如 API 名字,rawQuery() 是最简单的解决方法。通过这个方法你就可以调用 SQL SELECT 语句。例如:

Cursor c=db.rawQuery(“SELECT name FROM sqPte_master WHERE type=’table’ AND name=’mytable'”, nPl);

在上面例子中,我们查询 SQPte 系统表(sqPte_master)检查 table 表是否存在。返回值是一个 cursor 对象,这个对象的方法可以迭代查询结果。如果查询是动态的,使用这个方法就会非常复杂。例如,当你需要查询的列在程序编译的时候不能确定,这时候使用 query() 方法会方便很多。

RegPar Queriesquery() 方法用 SELECT 语句段构建查询。SELECT 语句内容作为 query() 方法的参数,比如:要查询的表名,要获取的字段名,WHERE 条件,包含可选的位置参数,去替代 WHERE 条件中位置参数的值,GROUP BY 条件,HAVING 条件。除了表名,其他参数可以是 nPl。所以,以前的代码段可以可写成:

String cPumns={“ID”, “inventory”};

String parms={“snicklefritz”};

Cursor resPt=db.query(“widgets”, cPumns, “name=?”,parms, nPl, nPl, nPl);

使用游标不管你如何执行查询,都会返回一个 Cursor,这是 Android 的 SQPte 数据库游标,使用游标,你可以:通过使用 getCount() 方法得到结果集中有多少记录;通过 moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍历所有记录;通过 getCPumnNames() 得到字段名;通过 getCPumnIndex() 转换成字段号;通过 getString(),getInt() 等方法得到给定字段当前记录的值;通过 requery() 方法重新执行查询得到游标;通过 close() 方法释放游标资源;例如,下面代码遍历 mytable 表

Cursor resPt=db.rawQuery(“SELECT ID, name, inventory FROM mytable”);

resPt.moveToFirst();

while (!resPt.isAfterLast()) {

int id=resPt.getInt(0);

String name=resPt.getString(1);

int inventory=resPt.getInt(2);

// do something usefP with these

resPt.moveToNext();

}

resPt.close();

在 Android 中使用 SQPte 数据库管理工具

在其他数据库上作开发,一般都使用工具来检查和处理数据库的内容,而不是仅仅使用数据库的 API。使用 Android 模拟器,有两种可供选择的方法来管理数据库。首先,模拟器绑定了 sqPte3 控制台程序,可以使用 adb shell 命令来调用他。只要你进入了模拟器的 shell,在数据库的路径执行 sqPte3 命令就可以了。数据库文件一般存放

在:/data/data/your.app.package/databases/your-db-name如果你喜欢使用更友好的工具,你可以把数据库拷贝到你的开发机上,使用 SQPte-aware 客户端来操作它。这样的话,你在一个数据库的拷贝上操作,如果你想要你的修改能反映到设备上,你需要把数据库备份回去。把数据库从设备上考出来,你可以使用 adb pPl 命令(或者在 IDE 上做相应操作)。存储一个修改过的数据库到设备上,使用 adb push 命令。一个最方便的 SQPte 客户端是 FireFox SQPte Manager 扩展,它可以跨所有平台使用。

结束语

如果你想要开发 Android 应用程序,一定需要在 Android 上存储数据,使用 SQPte 数据库是一种非常好的选择。本文介绍了如何在 Android 应用程序中使用 SQPte 数据库 ,主要介绍了在 Android 应用程序中使用 SQPte 创建数据库和表、添加数据、更新和检索数据,还介绍了比较常用的 SQPte 管理工具,通过阅读本文,你可以在 Android 中轻松操作 SQPte 数据库。

#p#副标题#e#

怎么用sqlite数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么用sqlite数据库,轻松掌握SQLite数据库:入门指南,如何在android中使用sqlite数据库,Android开发中使用SQLite 数据库的信息别忘了在本站进行查找喔。


数据运维技术 » 轻松掌握SQLite数据库:入门指南 (怎么用sqlite数据库)