SQLiteDataBase 新建数据库表并查询的demo
2013-10-16 13:21
281 查看
publicObjectcreateTable(){
//打开或创建test.db数据库
db=context.openOrCreateDatabase("symptom.db",Context.MODE_PRIVATE,null);
db.execSQL("DROPTABLEIFEXISTSzzk");
//创建person表
db.execSQL("CREATETABLEzzk(FATHERvarchar2(4),CHILDvarchar2(4))");
//插入数据
update("zzk","a","a1");
update("zzk","a","a2");
update("zzk","a","a3");
update("zzk","a","a4");
update("zzk","b","b1");
update("zzk","b","b2");
update("zzk","b","b3");
update("zzk","b","b4");
update("zzk","b","b5");
Cursorc=db.rawQuery("SELECT*FROMzzk",null);
Log.d("cursor",Integer.toString(c.getCount()));
while(c.moveToNext()){
Log.d("testcursor","test");
}
returnc;
}
publicvoidupdate(Stringtable,Stringfather,Stringchild){
ContentValuescv=newContentValues();
cv.put("FATHER",father);
cv.put("CHILD",child);
db.insert(table,null,cv);
}
其他参考资料:
SQLiteDatabase的介绍
/article/4132160.html
Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。
SQLiteDatabase的常用方法
1、打开或者创建数据库
在Android中以使用SQLiteDatabase的静态方法openOrCreateDatabase(Stringpath,SQLiteDatabae.CursorFactoryfactory)打开或者创建一个数据库。它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。
下面是创建名为“stu.db”数据库的代码:
db=SQLiteDatabase.openOrCreateDatabase("/data/data/com.lingdududu.db/databases/stu.db",null);
2、创建表
创建一张表很简单。首先,编写创建表的SQL语句,然后,调用SQLiteDatabase的execSQL()方法来执行SQL语句便可以创建一张表了。
下面的代码创建了一张用户表,属性列为:_id(主键并且自动增加)、sname(学生姓名)、snumber(学号)
privatevoidcreateTable(SQLiteDatabasedb){
//创建表SQL语句
Stringstu_table="createtableusertable(_idintegerprimarykeyautoincrement,snametext,snumbertext)";
//执行SQL语句
db.execSQL(stu_table);
}
3、插入数据
插入数据有两种方法:
①SQLiteDatabase的insert(Stringtable,StringnullColumnHack,ContentValuesvalues)方法,参数一是表名称,参数二是空列的默认值,参数三是ContentValues类型的一个封装了列名称和列值的Map;
②编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
第一种方法的代码:
privatevoidinsert(SQLiteDatabasedb){
//实例化常量值
ContentValuescValue=newContentValues();
//添加用户名
cValue.put("sname","xiaoming");
//添加密码
cValue.put("snumber","01005");
//调用insert()方法插入数据
db.insert("stu_table",null,cValue);
}
第二种方法的代码:
privatevoidinsert(SQLiteDatabasedb){
//插入数据SQL语句
Stringstu_sql="insertintostu_table(sname,snumber)values('xiaoming','01005')";
//执行SQL语句
db.execSQL(sql);
}
4、删除数据
删除数据也有两种方法:
①调用SQLiteDatabase的delete(Stringtable,StringwhereClause,String[]whereArgs)方法,参数一是表名称,参数二是删除条件,参数三是删除条件值数组;
②编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。
第一种方法的代码:
privatevoiddelete(SQLiteDatabasedb){
//删除条件
StringwhereClause="_id=?";
//删除条件参数
String[]whereArgs={String.valueOf(2)};
//执行删除
db.delete("stu_table",whereClause,whereArgs);
}
第二种方法的代码:
privatevoiddelete(SQLiteDatabasedb){
//删除SQL语句
Stringsql="deletefromstu_tablewhere_id=6";
//执行SQL语句
db.execSQL(sql);
}
5、修改数据
修改数据有两种方法:
①调用SQLiteDatabase的update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)方法。参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组。
②编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。
第一种方法的代码:
privatevoidupdate(SQLiteDatabasedb){
//实例化内容值
ContentValuesvalues=newContentValues();
//在values中添加内容
values.put("snumber","101003");
//修改条件
StringwhereClause="id=?";
//修改添加参数
String[]whereArgs={String.valuesOf(1)};
//修改
db.update("usertable",values,whereClause,whereArgs);
}
第二种方法的代码:
privatevoidupdate(SQLiteDatabasedb){
//修改SQL语句
Stringsql="updatestu_tablesetsnumber=654321whereid=1";
//执行SQL
db.execSQL(sql);
}
6、查询数据
在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
publicCursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit);
各个参数的意义说明:
①table:表名称
②columns:列名称数组
③selection:条件字句,相当于where
④selectionArgs:条件字句,参数数组
⑤groupBy:分组列
⑥having:分组条件
⑦orderBy:排序列
⑧limit:分页查询限制
⑨Cursor:返回值,相当于结果集ResultSet
Cursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.
Cursor游标常用方法
下面就是用Cursor来查询数据库中的数据,具体代码如下:
privatevoidquery(SQLiteDatabasedb)
{
//查询获得游标
Cursorcursor=db.query("usertable",null,null,null,null,null,null);
//判断游标是否为空
if(cursor.moveToFirst(){
//遍历游标
for(inti=0;i<cursor.getCount();i++){
cursor.move(i);
//获得ID
intid=cursor.getInt(0);
//获得用户名
Stringusername=cursor.getString(1);
//获得密码
Stringpassword=cursor.getString(2);
//输出用户信息
System.out.println(id+":"+sname+":"+snumber);
}
}
}
7、删除指定表
编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
privatevoiddrop(SQLiteDatabasedb){
//删除表的SQL语句
Stringsql="DROPTABLEstu_table";
//执行SQL
db.execSQL(sql);
}
//打开或创建test.db数据库
db=context.openOrCreateDatabase("symptom.db",Context.MODE_PRIVATE,null);
db.execSQL("DROPTABLEIFEXISTSzzk");
//创建person表
db.execSQL("CREATETABLEzzk(FATHERvarchar2(4),CHILDvarchar2(4))");
//插入数据
update("zzk","a","a1");
update("zzk","a","a2");
update("zzk","a","a3");
update("zzk","a","a4");
update("zzk","b","b1");
update("zzk","b","b2");
update("zzk","b","b3");
update("zzk","b","b4");
update("zzk","b","b5");
Cursorc=db.rawQuery("SELECT*FROMzzk",null);
Log.d("cursor",Integer.toString(c.getCount()));
while(c.moveToNext()){
Log.d("testcursor","test");
}
returnc;
}
publicvoidupdate(Stringtable,Stringfather,Stringchild){
ContentValuescv=newContentValues();
cv.put("FATHER",father);
cv.put("CHILD",child);
db.insert(table,null,cv);
}
其他参考资料:
SQLiteDatabase的介绍
Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。
SQLiteDatabase的常用方法
方法名称 | 方法描述 |
openOrCreateDatabase(Stringpath,SQLiteDatabase.CursorFactoryfactory) | 打开或创建数据库 |
insert(Stringtable,StringnullColumnHack,ContentValuesvalues) | 添加一条记录 |
delete(Stringtable,StringwhereClause,String[]whereArgs) | 删除一条记录 |
query(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy) | 查询一条记录 |
update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs) | 修改记录 |
execSQL(Stringsql) | 执行一条SQL语句 |
close() | 关闭数据库 |
在Android中以使用SQLiteDatabase的静态方法openOrCreateDatabase(Stringpath,SQLiteDatabae.CursorFactoryfactory)打开或者创建一个数据库。它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。
下面是创建名为“stu.db”数据库的代码:
db=SQLiteDatabase.openOrCreateDatabase("/data/data/com.lingdududu.db/databases/stu.db",null);
2、创建表
创建一张表很简单。首先,编写创建表的SQL语句,然后,调用SQLiteDatabase的execSQL()方法来执行SQL语句便可以创建一张表了。
下面的代码创建了一张用户表,属性列为:_id(主键并且自动增加)、sname(学生姓名)、snumber(学号)
privatevoidcreateTable(SQLiteDatabasedb){
//创建表SQL语句
Stringstu_table="createtableusertable(_idintegerprimarykeyautoincrement,snametext,snumbertext)";
//执行SQL语句
db.execSQL(stu_table);
}
3、插入数据
插入数据有两种方法:
①SQLiteDatabase的insert(Stringtable,StringnullColumnHack,ContentValuesvalues)方法,参数一是表名称,参数二是空列的默认值,参数三是ContentValues类型的一个封装了列名称和列值的Map;
②编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
第一种方法的代码:
privatevoidinsert(SQLiteDatabasedb){
//实例化常量值
ContentValuescValue=newContentValues();
//添加用户名
cValue.put("sname","xiaoming");
//添加密码
cValue.put("snumber","01005");
//调用insert()方法插入数据
db.insert("stu_table",null,cValue);
}
第二种方法的代码:
privatevoidinsert(SQLiteDatabasedb){
//插入数据SQL语句
Stringstu_sql="insertintostu_table(sname,snumber)values('xiaoming','01005')";
//执行SQL语句
db.execSQL(sql);
}
4、删除数据
删除数据也有两种方法:
①调用SQLiteDatabase的delete(Stringtable,StringwhereClause,String[]whereArgs)方法,参数一是表名称,参数二是删除条件,参数三是删除条件值数组;
②编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。
第一种方法的代码:
privatevoiddelete(SQLiteDatabasedb){
//删除条件
StringwhereClause="_id=?";
//删除条件参数
String[]whereArgs={String.valueOf(2)};
//执行删除
db.delete("stu_table",whereClause,whereArgs);
}
第二种方法的代码:
privatevoiddelete(SQLiteDatabasedb){
//删除SQL语句
Stringsql="deletefromstu_tablewhere_id=6";
//执行SQL语句
db.execSQL(sql);
}
5、修改数据
修改数据有两种方法:
①调用SQLiteDatabase的update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)方法。参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组。
②编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。
第一种方法的代码:
privatevoidupdate(SQLiteDatabasedb){
//实例化内容值
ContentValuesvalues=newContentValues();
//在values中添加内容
values.put("snumber","101003");
//修改条件
StringwhereClause="id=?";
//修改添加参数
String[]whereArgs={String.valuesOf(1)};
//修改
db.update("usertable",values,whereClause,whereArgs);
}
第二种方法的代码:
privatevoidupdate(SQLiteDatabasedb){
//修改SQL语句
Stringsql="updatestu_tablesetsnumber=654321whereid=1";
//执行SQL
db.execSQL(sql);
}
6、查询数据
在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
publicCursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit);
各个参数的意义说明:
①table:表名称
②columns:列名称数组
③selection:条件字句,相当于where
④selectionArgs:条件字句,参数数组
⑤groupBy:分组列
⑥having:分组条件
⑦orderBy:排序列
⑧limit:分页查询限制
⑨Cursor:返回值,相当于结果集ResultSet
Cursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.
Cursor游标常用方法
方法名称 | 方法描述 |
getCount() | 获得总的数据项数 |
isFirst() | 判断是否第一条记录 |
isLast() | 判断是否最后一条记录 |
moveToFirst() | 移动到第一条记录 |
moveToLast() | 移动到最后一条记录 |
move(intoffset) | 移动到指定记录 |
moveToNext() | 移动到下一条记录 |
moveToPrevious() | 移动到上一条记录 |
getColumnIndexOrThrow(StringcolumnName) | 根据列名称获得列索引 |
getInt(intcolumnIndex) | 获得指定列索引的int类型值 |
getString(intcolumnIndex) | 获得指定列缩影的String类型值 |
privatevoidquery(SQLiteDatabasedb)
{
//查询获得游标
Cursorcursor=db.query("usertable",null,null,null,null,null,null);
//判断游标是否为空
if(cursor.moveToFirst(){
//遍历游标
for(inti=0;i<cursor.getCount();i++){
cursor.move(i);
//获得ID
intid=cursor.getInt(0);
//获得用户名
Stringusername=cursor.getString(1);
//获得密码
Stringpassword=cursor.getString(2);
//输出用户信息
System.out.println(id+":"+sname+":"+snumber);
}
}
}
7、删除指定表
编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
privatevoiddrop(SQLiteDatabasedb){
//删除表的SQL语句
Stringsql="DROPTABLEstu_table";
//执行SQL
db.execSQL(sql);
}
相关文章推荐
- oracle 查询当前数据库database,初始新建用户system用户名无法连接db,没开锁;新建用户和密码--授权
- 0321-SQLite的用法---新建数据库、对数据的增、删、改、查
- sqlite3 查询数据库表结构
- SQLite3命令行使用查询android的telephone数据库
- sqlite 的基本操作以及数据库查询语句的基本格式
- SQlite 在windows环境下的配置和新建数据库
- SQLite基本操作加数据库分页查询
- PS应用EX之:新建/配置邮箱数据库 new-mailboxdatabase
- iOS数据库开发之SQLite和FMDB详解(附Demo)
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- 【复习】使用 SQLiteDatabase 操作 SQLite 数据库
- Android获取操作数据库的SQLiteDatabase实例
- 使用SQLiteDatabase进行数据库操作的步骤
- iOS-数据库-SQLite模糊查询
- Sql 数据库的新建,表的新建,约束操作,简单查询
- Inside SQLite 第二章 Database File Format数据库文件格式
- ios初学SQLite3(创建、插入、查询、更新数据库和表)
- sqlite查询数据库中存在的所有表
- SQLite 跨数据库查询
- navicat的创建数据库查询 unkonwdatabase