Aug 28: Relational Algebra, SQL Joins
Learning Objectives
After today's class, you should be able to:
- Summarize relational algebra operations and their relationship to SQL.
- Write SQL queries using JOIN syntax (both
USING
andON
syntax).
Lesson Outline¶
Lecture Slides [30 min]
Lab Activity [45 min]
- Intro to Homework 1 (due Sep 02)
- Set up the
hw1.sqlite
database
Your To-Do List¶
- Submit the TeamPref Survey on Canvas – due today!
- Finish reading sections 1.2–1.3 and do at least 75% of the activities
- Submit HW1 on Gradescope by the end of Monday
Practice Queries¶
Instructions
Create a text file named sqlite-queries.sql
.
Put your name at the top of the file in a comment (starting with --
).
Use this file to record your solutions for each of the queries below.
Submit your work to Gradescope by the end of the day.
For full credit, you must submit at least 5 queries with at least 2 from each database.
World Database
- List all countries in Europe with their population.
- Schema: ID, Name, Population
- Order: Population (descending)
- Find the capital city of Finland.
- Schema: Country, Capital_City
- Order: N/A
- Show all official languages of countries in South America.
- Schema: Country, Language
- Order: Country
- What are the top 10 most populous cities in the world?
- Schema: Name, Population, CountryCode
- Order: Population (descending)
- Count the number of countries per continent.
- Schema: Continent, Num_Countries
- Order: Num_Countries (descending)
Company Database
- Find the current manager of each department
- Schema: dept_name, first_name, last_name
- Order: dept_name
- Show the current department of a specific employee
- Schema: first_name, last_name, dept_name
- Order: N/A
- Top 10 highest paid employees (current salary only)
- Schema: emp_no, first_name, last_name, salary
- Order: salary (descending)
- Average current salary by department
- Schema: dept_name, avg_salary
- Order: avg_salary (descending)
- Count how many employees are in each department (currently)
- Schema: dept_name, num_employees
- Order: num_employees (descending)