Android和SQLite:何时使用分号结束语句?

Dan*_*cco 12 sqlite android

如果您在Android 上使用SQLite rawQuery()execSQL()方法,何时应使用分号来结束语句?

例如,在本教程中,作者在create table语句中使用分号(通过execSQL),但不在select语句上使用分号(通过rawQuery).例如:

创建表语句:

private static final String DATABASE_CREATE = "create table "
      + TABLE_COMMENTS + "(" + COLUMN_ID
      + " integer primary key autoincrement, " + COLUMN_COMMENT
      + " text not null);";
database.execSQL(DATABASE_CREATE);
Run Code Online (Sandbox Code Playgroud)

选择声明:

Cursor cursor = getReadableDatabase().
  rawQuery("select * from todo where _id = ?", new String[] { id });
Run Code Online (Sandbox Code Playgroud)

是否使用该execSQL()方法的语句最后需要分号,但使用该rawQuery()方法的语句不是?

Eri*_*ric 15

SQLite语句以分号(;)结束.如果指定了一个,则表示它是命令的结束,并且更多命令可以遵循该分号.如果未指定分号,则将整个字符串作为命令.

在这种情况下,CREATE语句中的分号无关紧要,因为后面没有任何内容.