A cursor is a temporary work area that stores data retrieved from a database. It contains information on a SQL statement and the rows accessed. Cursors can be implicit, created by default for DML statements, or explicit, which must be created for SQL statements that return multiple rows. A trigger is a stored procedure that automatically executes when a data change occurs to the table it is defined on via insert, update or delete operations. Triggers can be row-level, firing for each row changed, or statement-level, firing once per SQL statement. SQL is used to select, insert, update and delete data from database tables.