Raw data rarely looks the way we need it for a report or an app. We often need to reshape text, do calculations, and add timestamps. In this chapter, we go beyond just fetching rows. We start transforming data right inside the database. We will also build reusable virtual tables and let the system create unique ID numbers for us automatically.