PL/SQL cursors allow naming and manipulating the result set of a SQL query. There are two types of cursors: implicit and explicit. Implicit cursors are associated with DML statements and queries with INTO clauses, while explicit cursors must be declared, opened, fetched from, and closed. Explicit cursors can be static, using a fixed SQL query, or dynamic, changing the SQL at runtime. Cursors support attributes like %FOUND and %ROWCOUNT and can iterate over query results using a FOR loop.