Views
A view gives a reusable name to a stored SELECT definition. People can query it without rewriting the same reporting logic.
Create and query a view
CREATE VIEW paid_orders AS SELECT ... stores a query definition. A normal view does not freeze a copy of its rows; querying it reads the underlying data.
Stable outputs
Name columns explicitly and document filters. SELECT * can make a reporting contract depend on future schema changes. Decide which columns downstream users should rely on.
Changes and access
View replacement and update rules differ across databases. A view is not automatically a security boundary: underlying permissions and ownership rules still matter.
View versus CTE
A CTE is scoped to one statement. A view is a database object that survives statements until dropped. The practice database resets each run, so create the view and query it in the same script.