Yes. Within a single database connection, a SELECT statement always sees all changes to the database that are completed prior to the start of the SELECT statement, whether committed or uncommitted.
Summary fom the docs:
-
Transactions in SQLite are SERIALIZABLE.
-
Changes made in one database connection are invisible to all other database connections prior to commit.
-
A query sees all changes that are completed on the same database connection prior to the start of the query, regardless of whether or not those changes have been committed.
-
If changes occur on the same database connection after a query starts running but before the query completes, then it is undefined whether or not the query will see those changes.
-
If changes occur on the same database connection after a query starts running but before the query completes, then the query might return a changed row more than once, or it might return a row that was previously deleted.
-
For the purposes of the previous four items, two database connections that use the same shared cache and which enable PRAGMA read_uncommitted are considered to be the same database connection, not separate database connections.


















