基于Android SQLite的使用介绍

在Android平台中,集成了一个嵌入式关系型数据库--SQLite,它支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然只支持五种数据类型,实际上可以接受varchar(n),char(n),decimal(p,s)等数据类型,在进行运算或保存的时候会转换成对应的五种数据类型。
ex: 可以在Integer类型的字段中存放字符串,或者在布尔类型字段中存放浮点数,或者在字符型字段中存放日期,but!定义为INTEGER PRIMARY KEY的字段只能存储64位整数,另外,在编写CREATE TABLE语句时,可以省略跟在字段名称后面的数据类型;
create table person(personid integer primary key autoincrement,name varchar(20))//name的类型可省略;
select * from tablename where tiaojian group by 分组字句 having... order by 排序字句
select * from person
select * from person order by id desc/asc
select name from person group by name having count(*)>1
分页:select * from Account limit 5 offset 3 或者 select * from Account limit3,5
插入语句:insert into tablename(字段列表) values(值列表)
     insert into person(name,age) values("Livingstone",22)
更新语句:update tablename set field1=val1,field2=val2 where 条件语句
     update person set name="Livingstone" where id = 10
删除语句:delete from tablename where 条件语句
     delete from person where id=10
获取添加记录后自增长的ID值:select last_insert_rowid()

SQLiteDatabase专门提供了对于添加、删除、更新、查询的操作方法:insert(),delete(),update()和query();

Insert()方法用于添加数据,各个字段的数据使用ContentValues进行存放,ContentValues类似于MAP,相对于 MAP,它提供了存取数据对应的put(String key,Xxx value)和getAsXxx(String key)方法;
long rowid=db.insert("person",null,values);//返回新添记录的行号,与主键id无关;
不管第三个参数是否包含数据,执行Insert()方法必然添加一条记录,如果第三个参数为空,会添加一条除主键之外
其他字段值为Null的记录,Insert()方法内部其实是通过构造SQL语句完成数据的添加,第二个参数用于指定空值字段的名称:如果第三个参数values为Null或者元素个数为0,由于Insert()方法要求必须添加一条除了主键之外其它字段为Null值的记录,为了满足SQL语法要求,insert语句必须给定一个字段名,ex:insert into person(name) values(NULL),若不给字段名,insert语句就为:insert into person() values(),对于字段名,建议使用主键之外的字段,如果使用了INTEGER类型的主键字段,执行类似insert into person(personid) values(NULL)的insert语句后,该主键字段值也不会为NULL,若第三个参数values不为Null并且元素个数大于0,第二个参数设置为null。

(0)

相关推荐

  • android中使用SharedPreferences进行数据存储的操作方法

    很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是 j2se应用,我们会采用properties属性文件或者xml进行保存.如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android 平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用 SharedPrefe

  • Android开发笔记之: 数据存储方式详解

    无论是神马平台,神马开发环境,神马软件程序,数据都是核心.对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用.总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越,有查询功能,可以加密,可以加锁,可以跨应用,跨平台等等:网络,则用于比较重要的事情,比如科研,勘探,航空等实时采集到的数据需要马上通过网络

  • 在android开发中进行数据存储与访问的多种方式介绍

    数据存储与访问 很多时候我们的软件需要对处理后的数据进行存储或再次访问.Android为数据存储提供了多种方式,分别有如下几种: 文件 SharedPreferences SQLite数据库 内容提供者(Content provider) 网络 使用文件进行数据存储 首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. 复制代码 代码如下: public clas

  • Android 数据存储方式有哪几种

    以下内容给大家介绍Android数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 本文主要介绍如何使用文件来存储数据.Android文件操作用到的是Java.IO中的FileOutputStream和FileInputStream类. 一.存储文件 首先实例化一个FileOutputStream. FileOutputStream foStream = openFileOutput(fileN

  • Android数据存储之SQLite使用

    SQLite是一款开源的.嵌入式关系型数据库,第一个版本Alpha发布于2000年.SQLite在便携性.易用性.紧凑性.高效性和可靠性方面有着突出的表现. 在Android中创建的SQLite数据库存储在:/data/data/<包名>/databases/目录下. 主要特点: -轻量级 -独立性,没有不依赖,无需安装 -跨平台,支持众多操作系统 -支持高达2TB大小的数据库 -每个数据库以单个文件的形式存在 -以B-Tree的数据结构形式存储在硬盘 SQLite的数据类型: SQLite支

  • Android开发之SQLite的使用方法

    前言 SQLite是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少.Android系统中也不例外,也是采用SQLite,本节中就学习下在andorid中怎样使用该数据库来存放数据,并且对SQLite完成简单的新建,更新,查询,删除等操作. 实验说明: Android中使用SQLite数据库时,需要用adb来辅助调试,如果想在windows下的cmd命令行中使用adb,必须先配置环境变量,我

  • 基于Android SQLiteOpenHelper && CRUD 的使用

    复制代码 代码如下: public class DBOpenHelper extends SQLiteOpenHelper { // 类没有实例化,不能用作父类构造器的参数,必须声明为静态 public DBOpenHelper(Context context, int version) {  super(context, "SQLite.db", null, version);  // 第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null代表使

  • Android使用SQLite数据库的简单实例

    先画个图,了解下Android下数据库操作的简单流程: 1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper 复制代码 代码如下: package cn.learn.db.util; import android.content.Context;import android.databas

  • Android SQLite数据库增删改查操作的使用详解

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n). char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段

  • 基于Android SQLite的使用介绍

    在Android平台中,集成了一个嵌入式关系型数据库--SQLite,它支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然只支持五种数据类型,实际上可以接受varchar(n),char(n),decimal(p,s)等数据类型,在进行运算或保存的时候会转换成对应的五种数据类型.ex: 可以在Integer类型的字段中存放字符串,或者在布尔类型字段中存放浮点数,或者在字符型字段中存放日期,but!定义为INTEGER PRIMARY

  • 基于Android SQLite的升级详解

    做Android应用,不可避免的会与SQLite打交道.随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了. SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段. 并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段: 复制代码 代码如下: ALTER TABLE Subscription ADD COLUMN Activation BLOB;ALTER

  • 基于Android AppWidgetProvider的使用介绍

    AppWidgetProvider 用来在HOME页面显示插件 实现步骤:1.为AppWidget提供一个元布局文件AppWigdetProvider_Provider.xml,用来显示Widget的界面.2.创建一个类继承自AppWidgetProvider,并覆写里面的相关的方法.3.为WidgetProvider创建一个引用的布局文件,或者直接用main.xml.4.在程序中注册Manifest.xml. 代码如下: 1.在res/xml/文件夹下创建AppWigdetProvider_P

  • 基于Android LayoutInflater的使用介绍

    在android中,LayoutInflater有点类似于Activity的findViewById(id),不同的是LayoutInflater是用来找layout下的xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等). 下面通过一个例子进行详细说明: 1.在res/layout文件夹下,添加一个xml文件dialog.xml 复制代码 代码如下: <LinearLayout xmlns:android=&qu

  • 基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是测试:" android:textSize="22sp" /> <TextView android:layo

  • System.Data.SQLite 数据库详细介绍

    SQLite介绍在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义.表.索引和数据本身)都保存在一个单一的文件中.并且,SQLite是一个用C实现的类库,它在内存消耗.文件体积.简单性方面都有不错的表现,如果数据在10W条以下,查询速度也是相当快的.SQLite具有以下特征:实现多数SQL92的标准,包括事务(原子性.一致性.隔离性和持久性).触发器和大多数的复杂查询.不对插入或者更新

  • 基于Android如何实现将数据库保存到SD卡

    有时候为了需要,会将数据库保存到外部存储或者SD卡中(对于这种情况可以通过加密数据来避免数据被破解),比如一个应用支持多个数据,每个数据都需要有一个对应的数据库,并且数据库中的信息量特别大时,这显然更应该将数据库保存在外部存储或者SD卡中,因为RAM的大小是有限的:其次在写某些测试程序时将数据库保存在SD卡更方便查看数据库中的内容. Android通过SQLiteOpenHelper创建数据库时默认是将数据库保存在'/data/data/应用程序名/databases'目录下的,只需要在继承SQ

  • 基于Android的英文词典的实现方法

    英文词典是手机中经常使用的应用.因此,在本文将结合Android来讨论如何实现一个Android版的英文词典.实现英文词典的方法很多.在本文使用了SQLite数据库来保存英文单词信息.系统通过SQLite数据库中保存的单词信息来查找到与指定英文对应的中文信息.当然,实现这样一个英文词典需要解决一系列技术问题.例如,如何将保存英文单词信息的数据库文件随程序(apk文件)一起发布:发布后如何打开数据库:如何在输入前几个字母后,在AutoCompleteTextView组件提示列表中显示以所输入字符串

  • Android SQLite数据库加密的操作方法

    一.前言 SQLite是一个轻量级的.跨平台的.开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎, 读写效率高.资源消耗总量少.延迟时间少,使其成为移动平台数据库的最佳解决方案(如Android.iOS) 但是Android上自带的SQLite数据库是没有实现加密的,我们可以通过Android Studio直接导出应用创建的数据库文件,然后通过如SQLite Expere Personal 这种可视化工具打开数据库文件进行查看数据库的表结构,以及数据,这就导致存储在SQLit

  • Android SQLite事务处理结合Listview列表显示功能示例

    本文实例讲述了Android SQLite事务处理结合Listview列表显示功能.分享给大家供大家参考,具体如下: 前面的文章里介绍过事务的特点如原子性,隔离性,一致性,持久性.下面就结合Android的sqlite来说下,这次的文章里会把listview也结合起来用.实际上android里的事务和我们数据库里的是一样的.也是开启事务,操作,提交事务.如果出现问题就回滚. public void Transaction(){ SQLiteDatabase database=db.getRead

随机推荐