Course Description

This is CS50's comprehensive introduction to databases using SQL, where you'll master the skills to create, read, update, and delete data within relational databases that organize information in rows and columns. You'll learn to model real-world entities and their interconnections through well-structured tables featuring appropriate data types, triggers, and constraints. The course covers data normalization techniques to eliminate redundancies and minimize errors. You'll also explore how to join tables using primary and foreign keys, automate searches with views, and enhance search efficiency with indexes. Additionally, you'll discover how to integrate SQL with languages like Python and Java. Starting with SQLite for its portability, the course concludes with an introduction to PostgreSQL and MySQL to address scalability requirements. Assignments are inspired by real-world datasets, providing practical, hands-on experience.