android sqlite数据库中rawquery与execSQL的区别
使用rawquery和execSQL的确切区别是什么??android sqlite数据库中rawquery与execSQL的区别,android,sqlite,Android,Sqlite,使用rawquery和execSQL的确切区别是什么?? 在android活动中编写查询时,何时使用rawquery以及何时使用execSQL?来自API文档: 执行一条SQL语句,该语句不是SELECT或任何其他返回数据的SQL语句 执行一条不是SELECT/INSERT/UPDATE/DELETE的SQL语句 文档不一致,但它们的行为相同。后者的记录更为深入 运行提供的SQL并返回结果集上的游标 用于rawQuery的有: 您想使用SELECT语句查询数据库。 =>rawQue
在android活动中编写查询时,何时使用rawquery以及何时使用execSQL?来自API文档:
执行一条SQL语句,该语句不是SELECT或任何其他返回数据的SQL语句 执行一条不是SELECT/INSERT/UPDATE/DELETE的SQL语句 文档不一致,但它们的行为相同。后者的记录更为深入
运行提供的SQL并返回结果集上的游标
用于
rawQuery
的有:
- 您想使用
语句查询数据库。SELECT
=>
返回rawQuery(“选择…”
光标中的一组行和列。
- 更有效的方法是使用或在只有1x1查询结果的情况下使用,如从表中选择计数(*)(表中也有自己的专用方法:)-这跳过了
光标对象的创建,简化了代码,因为也没有要关闭的对象、moveToNext等
- 更有效的方法是使用或在只有1x1查询结果的情况下使用,如从表中选择计数(*)(表中也有自己的专用方法:)-这跳过了
- 特殊情况,如
,以行形式返回数据(请参阅)PRAGMA table_info
- 注意:不要使用
进行rawQuery
、INSERT
或UPDATE
或任何其他修改数据库的操作。您将遇到。原因是查询可以延迟读取结果,直到需要(=访问光标),这意味着SQLite延迟DELETE
execSQL
的用途包括:
- 您有数据库的“说明”。例如
(或任何其他CREATE TABLE
语句,例如CREATE
),CREATE INDEX
,DROP
设置属性而不是返回属性PRAGMA
,插入
或更新
,如果您对修改的行数或上次插入的行id不感兴趣。删除
- 当您需要这些方法时,可以使用
、update()
、insert()
方法,或者使用第二条语句来读取这些方法:delete()
与DatabaseUtils.longForQuery
或选择最后一次插入\u rowid()
。两者都只返回1个整数值。(请参阅和)选择更改()
- 当您需要这些方法时,可以使用
- 依赖于执行语句的任何其他内容