The SELECT statement retrieves data from database tables, views, or materialized views. It consists of a query with optional clauses like WHERE, GROUP BY, HAVING, ORDER BY, and FOR UPDATE. The SELECT statement returns a result set that can be iterated through using a cursor. To generate an updatable cursor, the SELECT statement must meet certain requirements like having a simple query with only one table and no aggregates.