在android sqlite数据库中rawquery和execSQL的区别

问题描述:

使用rawquery和execSQL的确切区别是什么? 在android活动中编写查询时,何时使用rawquery以及何时使用execSQL?在android sqlite数据库中rawquery和execSQL的区别

从API文档:


void execSQL (String sql)

执行一个SQL语句不是SELECT或返回数据的任何其他SQL语句。

void execSQL (String sql, Object[] bindArgs)

执行一个SQL语句是不是一个SELECT/INSERT/UPDATE/DELETE。

文档不一致,但它们的行为都相同。后者的文档更深入。


Cursor rawQuery (String sql, String[] selectionArgs)

运行提供的SQL,并返回在结果集的光标。


的用途rawQuery是:

的用途execSQL是:

  • 你 “指令” 数据库。与CREATE TABLE(或任何其他CREATE陈述,例如,CREATE INDEX),DROPPRAGMA s表示设置的属性,而不是返回他们,...
  • INSERTUPDATEDELETE当你不感兴趣修改行的数量或最后插入的行ID。
  • 其他任何依赖执行语句的东西。
+0

明白了...... execSQL不返回任何东西,用于创建,更新等。而rawQuery返回游标等。 – 2012-03-12 14:09:17

+0

非常感谢您的详细解释:)干杯! – 2017-08-11 08:14:31

,如果你想在不涉及其输出以执行数据库的东西(例如,创建/修改表),然后用execSQL,但如果你是在对你的查询有所回报了一定的成果(如选择记录),那么使用rawQuery