Row-level triggers are activated once for each row, which is modified by a DML statement. For example, consider a table, STUDENT_MARKS_AUDIT, used for the auditing of the STUDENT_MARKS table. A row-level trigger would insert a row in the STUDENT_MARKS_AUDIT table every time any value is modified in any row of the STUDENT_MARKS table.
Statement-level triggers are executed only once for each DML statement. For example, if there is an INSERT statement, which inserts 100 rows in a STUDENT_MARKS table, then the statement-level trigger would be executed only once on that table; whereas, a row-level trigger would be executed 100 times.
Row-level triggers are generally used for data auditing applications; whereas, statement-level triggers are used to enforce security features for the types of actions that may be performed on a table.