Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

合集下载

SQLite数据库简介、特点、优势、局限性及使用

SQLite数据库简介、特点、优势、局限性及使用

SQLite数据库简介、特点、优势、局限性及使⽤

SQLite简介

SQLite是⼀个进程内的轻量级嵌⼊式数据库,它的数据库就是⼀个⽂件,实现了⾃给⾃⾜、⽆服务器、零配置的、事务性的SQL数据库引擎。它是⼀个零配置的数据库,这就体现出来SQLite与其他数据库的最⼤的区别:SQLite不需要在系统中配置,直接可以使⽤。且SQLite不是⼀个独⽴的进程,可以按应⽤程序需求进⾏静态或动态连接。SQLite可直接访问其存储⽂件。

SQLite对于其他数据库有什么优势:

不需要配置,不需要安装和管理

不需要⼀个单独的服务器进程或操作的系统(⽆服务器的)

⼀个完整的SQLite数据库存储在⼀个单⼀的跨平台的磁盘⽂件上

SQLite是⾮常⼩的,轻量级的数据库,完全配置时⼩于400,省略可选功能配置时⼩于250

SQLite是⼀个⾃给⾃⾜的数据库,这也就意味着不需要任何外部的依赖

SQLite事务是完全兼容的,允许从多个进程或线程安全访问

SQLite⽀持SQL92(SQL2)标准的⼤多数查询语⾔的功能

SQLite使⽤ANSI-C编写的,并提供了简单和易于使⽤的API

SQLite可在UINX(Linux,Max OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运⾏

SQLite的局限性:

在SQLite中,SQL92不⽀持的特性如下所⽰:

RIGHT OUTER JOIN: 只实现了LEFT OUTER JOIN

FULL OUTER JOIN: 只实现了LEFT OUTER JOIN

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例

1.SQLite简介

SQLite是⼀款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计⽬标是嵌⼊式的,⽽且⽬前已经在很多嵌⼊式产品中使⽤了它,它占⽤资源⾮常的低,在嵌⼊式设备中,可能只需要⼏百K的内存就够了。

它能够⽀持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语⾔相结合,⽐如Tcl、PHP、Java、C++、.Net等,还有ODBC接⼝,同样⽐起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度⽐他们都快。

2.SQLite的特点:

轻量级

SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使⽤SQLite⼀般只需要带上它的⼀个动态库,就可以享受它的全部功能。

⽽且那个动态库的尺⼨也挺⼩,以版本3.6.11为例,Windows下487KB、Linux下347KB。

不需要"安装"

SQLite的核⼼引擎本⾝不依赖第三⽅的软件,使⽤它也不需要"安装"。有点类似那种绿⾊软件。

单⼀⽂件

数据库中所有的信息(⽐如表、视图等)都包含在⼀个⽂件内。这个⽂件可以⾃由复制到其它⽬录或其它机器上。

跨平台/可移植性

除了主流操作系统 windows,linux之后,SQLite还⽀持其它⼀些不常⽤的操作系统。

弱类型的字段

同⼀列中的数据可以是不同类型

开源

3.SQLite数据类型

⼀般数据采⽤的固定的静态数据类型,⽽SQLite采⽤的是动态数据类型,会根据存⼊值⾃动判断。SQLite具有以下五种常⽤的数据类型:

android中SQLite的使用总结,用excSQL和rawQuery方法实现一般得增删改查

android中SQLite的使用总结,用excSQL和rawQuery方法实现一般得增删改查

android中SQLite的使用总结,用excSQL和rawQuery方

法实现一般得增删改查

1:androidmanifest.xml的内容

[html]view plaincopy

1.<?xml version="1.0" encoding="utf-8"?>

2.<manifest xmlns:android="/apk/res/android"

3.package="cn.itcast.db"

4.android:versionCode="1"

5.android:versionName="1.0">

6.<application android:icon="@drawable/icon" android:lab el="@string/app_name">

7.<uses-library android:name="android.test.runner" />

8.<activity android:name=".MainActivity"

9.android:label="@string/app_name">

10.<intent-filter>

11.<action android:name="android.intent.action.MAIN" / >

12.<category android:name=" UNCHER" />

13.</intent-filter>

14.</activity>

安卓sqlite常用语句

安卓sqlite常用语句

SQLite 是Android 平台上的默认数据库管理系统,用于存储和检索数据。以下是一些常用的SQLite 语句和操作:

1. 创建数据库:

sql

CREATE DATABASE [database_name];

2. 打开数据库:

如果你想在特定数据库上执行操作,你需要先打开它。

sql

ATTACH DATABASE [database_name] AS [database_alias];

3. 创建表:

sql

CREATE TABLE [table_name] (

[column1] [data_type],

[column2] [data_type],

...

);

4. 插入数据:

sql

INSERT INTO [table_name] ([column1], [column2], ...)

VALUES ([value1], [value2], ...);

5. 查询数据:

sql

SELECT FROM [table_name]; -- 选择所有列

SELECT [column1], [column2] FROM [table_name]; -- 选择特定列

6. 更新数据:

sql

UPDATE [table_name]

SET [column1] = [value1], [column2] = [value2], ...

WHERE [condition];

7. 删除数据:

sql

DELETE FROM [table_name] WHERE [condition];

8. 创建索引:

创建索引可以加速查询速度。

sql

sqlite 命令详解 -回复

sqlite 命令详解 -回复

sqlite 命令详解-回复

SQLite是一种轻量级的关系型数据库管理系统。它支持SQL语言和各种SQL命令,能够用于创建、管理和查询数据库。在本文中,我们将详细介绍SQLite的常用命令,并逐步解释每个命令的用法和功能。

一、创建数据库

创建数据库是开始使用SQLite的第一步。我们可以使用CREATE DATABASE命令来创建一个新的数据库。以下是CREATE DATABASE命令的语法:

CREATE DATABASE database_name;

此命令将在SQLite服务器上创建一个新的数据库,并将其命名为database_name。请注意,SQLite不支持数据库的直接创建,它只能在SQLite服务器上创建。

二、创建表

在SQLite中,表是用于存储数据的结构化对象。要创建一个表,我们可以使用CREATE TABLE命令。以下是CREATE TABLE命令的语法:CREATE TABLE table_name (

column1 datatype,

column2 datatype,

...

);

此命令将在当前数据库中创建一个名为table_name的新表。表中的列由column1、column2等定义,并且每个列都有一个特定的数据类型。

三、插入数据

要向表中插入数据,我们可以使用INSERT INTO命令。以下是INSERT INTO命令的语法:

INSERT INTO table_name (column1, column2, ...)

VALUES (value1, value2, ...);

Android学习之SQLite数据库存储

Android学习之SQLite数据库存储

Android 学习之SQLite 数据库存储

•引⾔

概念

SQLite 数据库,和其他的SQL 数据库不同, 我们并不需要在⼿机上另外安装⼀个数据库软件,Android 系统已经集成了这个数据库;特点

SQLite 是⼀个轻量级的关系型数据库,运算速度快,占⽤资源少,很适合在移动设备上使⽤

不仅⽀持标准SQL 语法,还遵循ACID(数据库事务)原则,⽆需账号,使⽤起来⾮常⽅便

SQLite ⽀持五种数据类型

NULL

integer (整型)

real(浮点型)

text(⽂本类型)

blob(⼆进制类型)

SQLite 通过⽂件来保存数据库

⼀个⽂件就是⼀个数据库

数据库中⼜包含多个表格

表格⾥⼜有多条记录

每条记录由多个字段构成

每个字段都有对应的值•创建数据库

Android 为了让我们能够更加⽅便地管理数据库,专门提供了⼀个 SQLiteOpenHelper 帮助类;

借助这个类就可以⾮常简单地对数据库进⾏创建和升级。

SQLiteOpenHelper 是⼀个抽象类,这意味着如果我们想要使⽤它的话,就需要创建⼀个⾃⼰的帮助类去继承它;

SQLiteOpenHelper 中有两个抽象⽅法,分别是 和 ;

: 数据库第⼀次被创建时被调⽤

: 在数据库的版本发⽣变化时会被调⽤

⼀般在软件升级时才需改变版本号,⽽数据库的版本是由程序员控制的

假设数据库现在的版本是 1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新⽤户⼿机⾥的数据库表结构

为了实现这⼀⽬的,可以把原来的数据库版本设置为 2,或者其他与旧版本号不同的数字即可

sqlite教程

sqlite教程

sqlite教程

SQLite是一种轻型的嵌入式数据库引擎,它是开源的,跨平台的,

被广泛用于嵌入式设备、移动应用以及小型数据库应用。SQLite具有简单、易于使用、高效、可扩展性强等特点,因此备受开发者的喜爱。本文

将为您介绍SQLite的基本概念、常用操作以及一些高级用法。

一、SQLite基本概念

1. 数据库文件:SQLite的数据存储在一个普通的磁盘文件中,这个

文件是一个可随意命名的。一个数据库文件可以包含多个表,每个表又可

以有多个字段。

2.表:表是数据库中的一个基本结构,它由行和列组成。每个表由一

个唯一的名称标识。

3.字段(列):表中的每一列称为一个字段,它定义了数据的类型和

其他属性。

4.记录(行):表中的每一行称为一条记录,它包含了一组字段的值。

二、SQLite常用操作

1.创建数据库和表

要使用SQLite,首先需要创建一个数据库文件,可以使用以下命令:```bash

```

这会创建一个名为test.db的数据库文件。接下来,可以通过CREATE TABLE语句创建表:

```sql

CREATE TABLE students

id INTEGER PRIMARY KEY,

name TEXT,

age INTEGER

```

这个语句创建了一个名为students的表,包含了id、name和age三个字段。

2.插入数据

插入数据可以使用INSERTINTO语句:

```sql

INSERT INTO students (name, age) VALUES ('小明', 18);

INSERT INTO students (name, age) VALUES ('小红', 20);

android sqlite 插入数据的方法

android sqlite 插入数据的方法

android sqlite 插入数据的方法

在 Android 中使用 SQLite 数据库进行数据插入的方法如下: 1. 创建一个继承自 `SQLiteOpenHelper` 的数据库辅助类,用于创建和管理数据库以及表结构。在该类中,需要实现 `onCreate()` 方法来创建数据库和表,以及 `onUpgrade()` 方法来处理数据库版本升级。

```java

public class DBHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "mydatabase.db";

private static final int DATABASE_VERSION = 1;

public DBHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override

public void onCreate(SQLiteDatabase db) {

// 创建表结构

String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";

db.execSQL(createTableQuery);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

sqlite手册

sqlite手册

sqlite手册

SQLite是一种嵌入式关系型数据库管理系统,它被广泛应用于移动设备和小型应用程序中。本手册将介绍如何创建和管理SQLite 数据库以及使用SQL命令进行数据查询和操作。

1. 安装SQLite

在开始使用SQLite之前,您需要先安装SQLite。您可以通过以下方式安装SQLite:

- 下载SQLite二进制文件并安装

- 使用包管理器(如apt、yum)安装SQLite

- 使用SQLite源代码进行编译和安装

2. 创建数据库

要创建一个新的SQLite数据库,您可以使用以下命令:

```

sqlite3 .db

```

这将创建一个名为`.db`的新数据库,如果数据库不存在,则会自动创建它。

3. 创建表

要在SQLite数据库中创建表,请使用以下命令:

```

CREATE TABLE (

,

,

...

);

```

这将创建一个名为``的新表,并为每个列指定名称和数据类型。

4. 插入数据

要向SQLite表中插入数据,请使用以下命令:

INSERT INTO (, , ...) VALUES (, , ...);

```

这将向``中插入新行,并为每个指定列指定值。

5. 查询数据

要从SQLite表中查询数据,请使用以下命令:

```

SELECT , , ... FROM WHERE ;

```

这将从``中选择指定列,并根据指定的条件筛选行。6. 更新数据

要更新SQLite表中的数据,请使用以下命令:

UPDATE SET = , = , ... WHERE ; ```

这将更新满足指定条件的行的指定列的值。

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显

⽰数据的⽅法详解

本⽂实例讲述了Android操作SQLite数据库(增、删、改、查、分页等)及ListView显⽰数据的⽅法。分享给⼤家供⼤家参考,具体如下:

由于刚接触android开发,故此想把学到的基础知识记录⼀下,以备查询,故此写的⽐较啰嗦:

步骤如下:

⼀、介绍:

此⽂主要是介绍怎么使⽤android⾃带的数据库SQLite,以及把后台的数据⽤ListView控件显⽰

⼆、新建⼀个android⼯程——DBSQLiteOperate

⼯程⽬录:

三、清单列表AndroidManifest.xml的配置为:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="/apk/res/android"

package="com.example.dboperate"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

<!--单元测试加这句-->

<uses-library android:name="android.test.runner" />

AndroidSQLite数据库增删改查操作

AndroidSQLite数据库增删改查操作

AndroidSQLite数据库增删改查操作

⼀、使⽤嵌⼊式关系型SQLite数据库存储数据

在Android平台上,集成了⼀个嵌⼊式关系型数据库——SQLite,SQLite3⽀持NULL、INTEGER、REAL(浮点数字)、 TEXT(字符串⽂本)和BLOB(⼆进制对象)数据类型,虽然它⽀持的类型只有五种,但实际上sqlite3也接受varchar(n)、 char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最⼤的特点是你可以把各种类型的数据保存到任何字段中,⽽不⽤关⼼字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放⽇期型值。但有⼀种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产⽣错误。另外,在编写CREATE TABLE 语句时,你可以省略跟在字段名称后⾯的数据类型信息,如下⾯语句你可以省略name字段的类型信息:

CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

SQLite可以解析⼤部分标准SQL语句,如:

查询语句:select * from表名where条件⼦句 group by 分组字句 having ... order by 排序⼦句

如:select * from person

关于android studio sqlite数据库实验总结

关于android studio sqlite数据库实验总结

关于android studio sqlite数据库实验总结作为一个Android Studio的SQLite数据库实验,以下是一些总结:

1. 安装SQLite驱动程序:要在Android Studio中使用SQLite,需要安装SQLite驱动程序。可以使用Android SDK中的工具包安装,具体步骤可以参考SQLite官方文档。

2. 创建SQLite数据库:在Android Studio中创建一个SQLite 数据库,可以在Project--> Database中创建。在创建数据库时,需要提供一个数据库名称和密码,并设置数据库连接的用户名和密码。

3. 连接SQLite数据库:可以使用Android Studio提供的SQLite 连接工具,在Project--> Database中选择创建的SQLite数据库,然后选择连接工具。连接时需要提供数据库名称和密码,以及连接服务器的地址和端口号。

4. 创建和保存数据库表:在Android Studio中创建和保存数据库表可以使用SQL语句。可以使用SQLite的CREATE TABLE语句来创建表,也可以使用INSERT、SELECT等语句来创建、更新和删除表的数据。

5. 操作数据库表:在Android Studio中可以通过SQL语句和Android API来操作数据库表。可以使用Android Studio提供的SQLite API来执行SELECT、INSERT、UPDATE、DELETE等SQL操作,也可以使用Java API来执行这些操作。

Android数据库 之 SQLite数据库

Android数据库 之 SQLite数据库

Android数据库之 SQLite数据库

android数据库之sqlite数据库

delphixe5教程-firedac下的sqlite使用-前言介绍

本文章了解了firedac下的sqlite采用,转回至万一老师的博客.

delphixe5并入了firedac,第一印象非常好,恐怕dbexpress等等都要靠边站了.

使我最高兴地就是firedac对sqlite的积极支持!杰出的sqlite早就存有很多delphi的外包装

有静态引用obj的,有动态链接dll的,还有把dll嵌入资源文件的,甚至还有重写的(刚刚见过一套用c#重写的源码).

delphi官方首次导入sqlite,必须就是在xe3(提供更多了system.sqlite单元),这似的只是为了积极支持dbx,也须要sqlite.dll积极支持.

现在好了,有了firedac,有了firedac对sqlite更完善的支持(它没有使用

system.sqlite.pas),特别须要表明的就是,在windwos平台下预设采用了

sqlite3_x86.obj或sqlite3_x64.obj(firedac.phys.sqlitecli.pas),而非dll,再加之sqlite本来就不须要其他部署,太便利了.

从此,不管是写本地程序、移动程序(sqlite是andriod的系统数据库)、网络程序我都将使

用sqlite,恐怕在须要内存表中、ini文件、甚至就是定义某种文件格式时,我都会想起它.所以,一定必须把它研习精学皱!

估计学完它至少会记下20篇博客,如果你也想和我一起学习,快安装xe6吧(xe5我没装过,lsuper搞的embarcadero.delphi.xe6.lite.v9.x应该更方便安装,这里一并谢过!).

Android开发中的数据存储和访问方法详解(五)

Android开发中的数据存储和访问方法详解(五)

Android开发中的数据存储和访问方法详解

在Android开发中,数据存储和访问是一个非常重要的话题。随

着移动设备的普及,数据的存储和访问方式也在不断发展和更新。本

文将深入探讨Android开发中常用的数据存储和访问方法,帮助开发

者更好地选择和应用合适的数据处理方案。

一、Shared Preferences

Shared Preferences是Android开发中最常用的数据存储方式之一。它用于存储少量的键值对数据,并提供了简单的API来读写数据。Shared Preferences适用于存储一些配置信息、用户偏好设置等简单

的数据,它的存储位置是应用私有的。

二、SQLite数据库

SQLite是一个轻量级的嵌入式数据库引擎,广泛应用于Android

开发中。与Shared Preferences相比,SQLite数据库适用于存储结构化的大量数据。通过使用SQLiteOpenHelper类,开发者可以创建、升

级和管理数据库,使用SQL语句进行数据的增删改查操作。

三、文件存储

文件存储是一种常见的数据存储方式。它适用于存储不需要进行

复杂查询和排序的数据。Android开发中可以通过使用FileOutputStream和FileInputStream类来进行文件的写入和读取操作。需要注意的是,文件存储需要申请存储权限,并且要注意存储路

径的选择。

四、ContentProvider

ContentProvider是Android框架提供的一种跨进程数据共享方案。通过ContentProvider,应用可以将数据暴露给其他应用访问。开发者可以自定义ContentProvider,并实现查询、插入、更新和删除等操作。ContentProvider是Android开发中较为复杂的数据访问方式,适用于需要共享数据的场景。

庖丁解牛Android中的SQLite之Sqlite中的数据类型

庖丁解牛Android中的SQLite之Sqlite中的数据类型

庖丁解牛Android 中的SQLite 之Sqlite 中的数据类型

大多数数据库管理系统使用的是静态类型系统,也就是说,数据库中每一个数据以及表中每一列都有它固定的数据类型。Sqlite 使用了动态类型系统,那sqlite 的数据类型系统有什么特性呢?如果感兴趣的话,继续往下阅读吧。

一、Sqlite 中的数据- 存储类型

存入sqlite 中的数据都有一个存储类型,数据的存储类型有五种:

NULL :表示数据为null 的存储类型。

INTEGER :表示整型数据类型

REAL :表示浮点数据类型

TEXT :表示字符串数据类型

BLOB :二进制数据类型

每当一个数据插入到sqlite 中的表中时,它都会被赋予一个存储类型。可以将这个存储类型看做是数据的一个属性。那么问题来了,存储类型由什么决定呢?应该是(我的推断,不一定正确),数据库管理系统,也就是sqlite ,根据数据本身的类型来决定其存储类型,比如我们向数据库中插入一个int 型的数据,那么sqlite 会赋予这个数据INTEGER的存储类别。

为什么我会这么推断呢?在google 官方封装的java 接口中,我们都是通过ContentValues 这个类来插入数据的,在这个类中put 方法有多个重载:

public void put(String key, String value)public void put(String key, Byte value)public void

put(String key, Long value)public void put(String key, Float value)public void put(String key, Double value)public void put(String key, Boolean value)public void put(String key, byte[] value)

学会使用SQLite进行轻量级数据库管理

学会使用SQLite进行轻量级数据库管理

学会使用SQLite进行轻量级数据库管理SQLite是一种轻量级的嵌入式数据库管理系统,它广泛应用于各种移动应用和小型项目中。学会使用SQLite进行数据库管理,可以帮助开发者有效地存储和管理数据,提高应用程序的性能和稳定性。本文将围绕SQLite的使用进行详细介绍,包括SQLite的特点、创建数据库、数据表操作、数据操作和性能优化等方面。

第一章:SQLite的特点

SQLite具有以下几个显著特点:

1. 轻量级:SQLite以静态链接库的形式存在,文件大小仅为几百KB,适合作为移动应用的数据库管理系统。

2. 无需独立服务器:SQLite是嵌入式数据库,不需要独立的数据库服务器,数据库文件即为应用程序的一部分,便于部署和管理。

3. 零配置:SQLite不需要进行繁琐的配置和管理,仅需传递数据库文件路径即可进行访问和操作。

4. 支持多种编程语言:SQLite提供了丰富的API,支持多种编程语言,如C/C++、Java、Python等,方便开发者进行数据库操作。

第二章:创建数据库

使用SQLite创建数据库非常简单,只需调用相应的API即可

完成。以下是使用Python在本地创建SQLite数据库的示例代码:```python

import sqlite3

db = sqlite3.connect('test.db')

cursor = db.cursor()

cursor.execute('''CREATE TABLE IF NOT EXISTS users

(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

17_创建数据库与完成数据添删改查--------------------------------------1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER n n 、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型 n n 只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不 n n 过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数n n 据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的 n n 字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。n n n 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段 n n 保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时, n n 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段 n n 的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar n n (20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order byn n n 排序子句如:select * from person n n n n select * from person order by id desc n n n n select name from person group by name having count(*)>1 ---------------------------------------------------------------------------2.a.分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录n n select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 n b.select * from Account limit 3,5,指的是跳过前面的3条记录,然后获取5条记录n c.select * from Account limit 3,5是select * from Account limit 5 offset 3语句 n n 的简写版 -------------------------------------------------------------------------------n 3.常用操作: a.插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person nn n n (name, age) values(‘传智’,3) b.更新语句:update 表名 set 字段名=值where 条件子句。如:update person set name=n n n n'credream

‘where id=10 c.删除语句:delete from 表名 where 条件子句。如:delete from person nwhere id=10 -------------------------------------------------------------------------------2.虽然无数据类型,但是建议加上,这样可以增加可读性,支持标准sql,oracle中的不行 ---------------------------------------------------3.获取添加记录后的自增长的ID值:select last_insert_rowid(); -----------------------------------------------------------4.在android中开发数据库应用: n a.创建数据库:以前在javaee时候,需要手工数据,但是android应用,需要运行在用户的 n n 手机上,所以,android应用,要有自动创建数据库功能,当第一次使用软件的时候 n n 就创建数据库----------------------------------------5.关于数据库自动创建的详细介绍: 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很 n n 多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出 n n 应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据 n n 表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机 n n 上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方 n n 式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我 n n 们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版 n n 本进行管理来实现前面提出的需求。n -----------------------------------------6.SQLite数据库添加,删除,改查操作 n A.创建数据库:SQLiteOpenHelper .getWritableDatabase ()或getReadableDatabase() n n 可以创建数据库7.创建完成以后可以使用SQLITE Expert软件打开生成的数据库n 可以看到除了生成的自己的需要的表之外,还生成了一张:android_metadata表: n 如果在sqlite中使用数据库一定会有一张android_metadata表,用来登记用户的 n 使用语言:zh_cn -----------------------------------------------------n b.数据库自动创建的过程及方法详细介绍: n n我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在 n n 很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建 n n 出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数n n 据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手 n n 机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工 n n 方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为n n 我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库n n 版本进行管理来实现前面提出的需求。n -------------------------------------------8.详细介绍: 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是 n n onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, intn n n newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结n n 构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获n n 取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生 n n 成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用 n n ,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 n n onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号, n n 而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数n n 据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为n n 了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如 n n 果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本 n n 升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后 n n 作出相应的表结构及数据更新。 getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 n n SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库n n 的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就 n n 会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了 n n ,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。 ------------------------------------------------------------------------9.创建数据库的代码: n a.创建项目:DBSQLIte n b./DBSQLIte/src/com/credream/service/DBOpenHelter.java n n package

com.credream.service; n n import android.content.Context; import

android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; n n public class DBOpenHelter extends SQLiteOpenHelper { //父类没有默认构造器,需要显示调用 public DBOpenHelter(Context context) { super (context, "credream.db", null, 1); //数据库创建完成后,默认会保存在<包>/database/文件夹下 //当修改版本号时候,会触发:onUpgrade方法 //第二个:指定数据库名称, //第三个:游标工厂,用来迭代,查询后的结果集,null代表使用系统默认的 n n 游标工厂//版本号,大于0 n } /** n* 这个方法是在数据库第一次被创建的时候调用的 n*/ @Override public void onCreate(SQLiteDatabase db) { //SQLiteDatabase这个类,封装了增删改查操作,也叫做数据库操作实例 db.execSQL("CREATE TABLE person (personid integer primary keyn n n autoincrement, name varchar(20))"); //这里也可以不写name的数据类型,因为sqlite是数据类型无关的,就是写n n 了varchar(20),也可以写入超过20的内容 n n } /** n* 当数据库的版本号变更的时候被调用 n*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

{ db.execSQL("alter table person add phone varchar(12) null"); n n } n n } --------------------------------------------------------2.在清单文件中写入测试环境 n n n

android:name="android.test.runner" /> n n n n n n n

android:name="android.test.InstrumentationTestRunner" n android:targetPackage="com.credream.db" android:label="Tests for My App" /> ----------------------------------------------------

3./DBSQLIte/src/com/credream/test/PersonServiceTest.java package com.credream.test; n n import com.credream.service.DBOpenHelter; n n import android.test.AndroidTestCase; n n public class PersonServiceTest extends AndroidTestCase { //创建数据库,在<包>/database/ public void testCreateDB(){ DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext());

dbOpenHelter.getWritableDatabase(); n } n n } -------------------------------------------------------4.选择方法开始测试,然后,在data/data/<包>/database/下 n 查看并用sqlite打开生成的数据库检查是否正确---------------------------------------------然后将版本号,改成2,然后再次执行,看到,表已经被更新,增加了一列phone -----------------------------------------------5.了解sqlite工作的原理: n DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n 打开getWritableDatabase();代码:

相关文档
最新文档