PL/SQL supports all SQL data manipulation commands (except EXPLAIN PLAN), transaction control commands and functions. PL/SQL supports INSERT, UPDATE, DELETE, SELECT and LOCK TABLE commands for manipulating Oracle data. For controlling the transactions it supports COMMIT, ROLLBACK, SAVEPOINT, and SET TRANSACTION commands. All the group functions or in other words the commonly supported aggregate functions in SQL are also supported by PL/SQL (avg, count, max, min, stddev, sum, and variance are supported by Oracle SQL). Several books on PL/SQL provide a detailed treatment of its syntax and usage, for instance [Urm97].