1.通过execSQL(“INSERT INTO mytable VALUES(‘idStr', 'nameStr', 20);”);可以插入一条记录,当插入记录出错时会抛出异常需要处理。
2.通过insert函数:insert函数需要一个ContentValues类型的值,此类型类似于hashmap,一个key,一个值配成一对。key就是字段名。
ContentValues v = new ContentValues();
v.put("id", "101");
v.put("name", "user 101");
v.put("age", 44);
mDb.insert("mytable", "null", v);
如果v中的key没有完全的指定所有字段,比如少name或者少id,那么记录能否被成功插入要根据表格创建时的字段限制来决定, 比如少name,那么此记录会插入,只是name字段的值为NULL;如果少id,那么记录不会被插入,因为创建时指定了NOT NULL.
可以通过以下指令来查看结果:
adb shell执行后进入shell;
cd /data/data/cn.demo.sql
sqlite3 database.db 进入了sqlite操作界面。
.help可以看到命令帮助。
.dump 可以看到数据库中的数据。
为了方便使用,可以自定义一个insert函数,将值通过参数传入,而ContentValues设置则在函数内部实现。
public void insert(String id, String name, int age) {
if( mDb == null ) mDb = getWritableDatabase();
ContentValues v = new ContentValues();
v.put("id", id);
v.put("name", name);
if(age > 0) v.put("age", age);
mDb.insert(TBL_NAME, "null", v);
从表格中查询记录
SQL语句:SELECT column list FROM table WHERE expr ORDER BY column list; 通过SQLiteDatabase类的query()函数:
Cursor SQLiteDatabase.query(String table,
String[] columns, String selection, String[] selectionArgs,
String groupBy, String having, String orderBy);
Parameters:
table 要更新的记录所在的表名。
values 要更新的字段值。
whereClause Where子句。更新哪些记录。
whereArgs Where子句中的'?'替换串。
执行update操作时,如果只给部分字段赋值,那么update后,没有赋值的字段仍然保持原来的值不变。
从表格中删除记录:
int SQLiteDatabase.delete(String table, String whereClause, String[] whereArgs);
从SQLite的整个创建和查询过程我们可以看出,在Android平台,由于SQLite的特性,一切以文件为主,没有顺序的概念。我们可以通过查询来得到满足条件的记录,通过SQL指令来操作数据库。此外,我们应该熟记Android平台操作SQLite的几个类:SQLiteOpenHelper抽象类、SQLiteDatabase数据库访问类以及SQLiteCursor 查询结构操作类。
标签:SQLite
相关阅读 >>
基于sqlalchemy实现操作mysql并执行原生sql语句
android开发教程之listview显示Sqlite数据
Sqlite 入门教程四 增删改查 有讲究
.net6跨服务器联表查询操作mysql、oracle、sqlserver等相互联表
更多相关阅读请进入《Sqlite》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
相关推荐
评论
管理员已关闭评论功能...
- 欢迎访问木庄网络博客
- 可复制:代码框内的文字。
- 方法:Ctrl+C。