Cursors in PL/SQL allow programmers to control context areas that contain information about SQL statements. There are two types of cursors: implicit cursors that are automatically created for SQL statements, and explicit cursors that are programmer-defined. Explicit cursors must be declared, opened to allocate memory, have rows fetched from them one by one, and then closed to release memory. Cursors point to context areas containing information like the number of rows processed by a SQL statement.