基于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。

时间: 2024-09-29 13:24:59

基于Android SQLite的使用介绍的相关文章

基于Android SQLite的使用介绍_Android

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

基于Android SQLite的升级详解_Android

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

基于Android SQLite的升级详解

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

基于Android LayoutInflater的使用介绍_Android

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

基于Android AppWidgetProvider的使用介绍_Android

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="

基于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的英文词典的实现方法_Android

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

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

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