A transaction is started for each statement that occurs outside of an explicit transaction block. Whether a commit is automatically issued following the statement is dependent on the RDBMS configuration. MySQL has the autocommit option, SQL Server has IMPLICIT_TRANSACTIONS, PostgreSQL is always auto commit.
In the standard, it is not necessary to issue START TRANSACTION to
start a transaction block: any SQL command implicitly begins a block.
PostgreSQL's behavior can be seen as implicitly issuing a COMMIT after
each command that does not follow START TRANSACTION (or BEGIN), and it
is therefore often called "autocommit". Other relational database
systems might offer an autocommit feature as a convenience.
In InnoDB, all user activity occurs inside a transaction. If
autocommit mode is enabled, each SQL statement forms a single
transaction on its own. By default, MySQL starts the session for each
new connection with autocommit enabled, so MySQL does a commit after
each SQL statement if that statement did not return an error.
SQL Server operates in the following transaction modes.
Autocommit transactions - Each individual statement is a transaction.
Explicit transactions - Each transaction is explicitly started with
the BEGIN TRANSACTION statement and explicitly ended with a COMMIT or
Implicit transactions - A new transaction is implicitly started when
the prior transaction completes, but each transaction is explicitly
completed with a COMMIT or ROLLBACK statement.