SQL, also known as Structured Query Language, is a powerful tool to search through large amounts of data and return specific information for analysis. Learning SQL is crucial for anyone aspiring to be a data analyst, data engineer, or data scientist, and helpful in many other fields such as web development or marketing.
In this cheat sheet, you'll find a handy list of functions covering querying data, filtering data, aggregation, and more—all collected from our SQL Fundamentals Skill Track.
To strengthen your SQL and data skills, you may find courses like Data Warehousing Concepts and Database Design helpful. If you’re interested in expanding your knowledge into cloud and data engineering, consider exploring Introduction to Data Engineering or our Azure Fundamentals Track.
To easily run all the example code in this tutorial yourself, you can create a DataLab workbook for free that has the dataset, SQL, and the code samples preconfigured.
Have this cheat sheet at your fingertips
Download PDFExecute e edite o código desta folha de dicas online
Executar códigoAssociate Data Engineer in SQL
The Different Dialects of SQL
Although SQL languages all share a basic structure, some of the specific commands and styles can differ slightly. Popular dialects include MySQL, SQLite, SQL Server, Oracle SQL, and more. PostgreSQL is a good place to start —since it’s close to standard SQL syntax and is easily adapted to other dialects.
Sample Data
Throughout this cheat sheet, we'll be using the sample data airbnb_listings
—denoting rental apartments on Airbnb.
id | city | country | number_of_rooms | year_listed |
1 | Paris | France | 5 | 2018 |
2 | Tokyo | Japan | 2 | 2017 |
3 | New York | USA | 2 | 2022 |
Querying tables
Get all the columns from a table
SELECT *
FROM airbnb_listings;
Return the city
column from the table
SELECT city
FROM airbnb_listings;
Get the city
and year_listed
columns from the table
SELECT city, year_listed
FROM airbnb_listings;
Get the listing id
, city
, ordered by the number_of_rooms
in ascending order
SELECT city, year_listed
FROM airbnb_listings
ORDER BY number_of_rooms ASC;
Get the listing id
, city
, ordered by the number_of_rooms
in descending order
SELECT city, year_listed
FROM airbnb_listings
ORDER BY number_of_rooms DESC;
Get the first 5 rows from airbnb_listings
SELECT *
FROM airbnb_listings
LIMIT 5;
Get a unique list of cities where there are listings
SELECT DISTINCT city
FROM airbnb_listings;
Filtering on numeric columns
Get all the listings where number_of_rooms
is more or equal to 3
SELECT *
FROM airbnb_listings
WHERE number_of_rooms >= 3;
Get all the listings where number_of_rooms
is more than 3
SELECT *
FROM airbnb_listings
WHERE number_of_rooms > 3;
Get all the listings where number_of_rooms
is exactly 3
SELECT *
FROM airbnb_listings
WHERE number_of_rooms = 3;
Get all the listings where number_of_rooms
is lower or equal to 3
SELECT *
FROM airbnb_listings
WHERE number_of_rooms <= 3;
Get all the listings where number_of_rooms
is lower than 3
SELECT *
FROM airbnb_listings
WHERE number_of_rooms < 3;
Filtering columns within a range—Get all the listings with 3 to 6 rooms
SELECT *
FROM airbnb_listings
WHERE number_of_rooms BETWEEN 3 AND 6;
Filtering on text columns
Get all the listings that are based in 'Paris'
SELECT *
FROM airbnb_listings
WHERE city = 'Paris';
Filter one column on many conditions—Get the listings based in the 'USA'
and in ‘France’
SELECT *
FROM airbnb_listings
WHERE country IN ('USA', 'France');
Get all listings where city
starts with "j"
and where it does not end with "t"
SELECT *
FROM airbnb_listings
WHERE city LIKE 'j%' AND city NOT LIKE '%t';
Filtering on multiple columns
Get all the listings in "Paris"
where number_of_rooms
is bigger than 3
SELECT *
FROM airbnb_listings
WHERE city = 'Paris' AND number_of_rooms > 3;
Get all the listings in "Paris"
OR the ones that were listed after 2012
SELECT *
FROM airbnb_listings
WHERE city = 'Paris' OR year_listed > 2012;
Upskill Your Team in SQL
Mastering SQL is crucial for effective data management and analysis. To leverage the power of data, your team needs to build strong SQL skills alongside other essential data tools. With DataCamp for Business, you can access comprehensive SQL training resources to upskill your team, ensuring they are well-prepared to navigate the complexities of database management and data analysis.
With our SQL training solutions, your team benefits from:
- Extensive learning resources: Access a rich library of interactive courses focused on SQL fundamentals, advanced queries, database design, and optimization techniques. Tailored learning paths guide your team through the most relevant topics for your organization’s needs.
- Practical experience: Gain hands-on practice with real-world scenarios, reinforcing core SQL concepts such as data retrieval, manipulation, aggregation, and performance tuning. Build confidence through active learning exercises that simulate real database environments.
- Scalable solutions: Whether your organization is a small team or a large enterprise, our solutions scale to meet your training needs, fostering a culture of continuous learning and data-driven decision-making.
- Progress monitoring: Utilize a variety of tools to track your team’s learning progress, ensuring they meet their SQL training objectives and are ready to apply their skills to real-world challenges.
Investing in SQL training for your team empowers them to make informed decisions, optimize database performance, and efficiently manage your organization’s data assets. Request a demo today to explore how our SQL training solutions can help your team excel.
Become SQL Certified
Filtering on missing data
Get all the listings where number_of_rooms
is missing
SELECT *
FROM airbnb_listings
WHERE number_of_rooms IS NULL;
Get all the listings where number_of_rooms
is not missing
SELECT *
FROM airbnb_listings
WHERE number_of_rooms IS NOT NULL;
Simple aggregations
Get the total number of rooms available across all listings
SELECT SUM(number_of_rooms)
FROM airbnb_listings;
Get the average number of rooms per listing across all listings
SELECT AVG(number_of_rooms)
FROM airbnb_listings;
Get the listing with the highest number of rooms across all listings
SELECT MAX(number_of_rooms)
FROM airbnb_listings;
Get the listing with the lowest number of rooms across all listings
SELECT MIN(number_of_rooms)
FROM airbnb_listings;
Grouping, filtering, and sorting
Get the total number of rooms for each country
SELECT country, SUM(number_of_rooms)
FROM airbnb_listings
GROUP BY country;
Get the average number of rooms for each country
SELECT country, AVG(number_of_rooms)
FROM airbnb_listings
GROUP BY country;
Get the listing with the maximum number of rooms for each country
SELECT country, MAX(number_of_rooms)
FROM airbnb_listings
GROUP BY country;
Get the listing with the lowest amount of rooms per country
SELECT country, MIN(number_of_rooms)
FROM airbnb_listings
GROUP BY country;
For each country, get the average number of rooms per listing, sorted by ascending order
SELECT country, AVG(number_of_rooms) AS avg_rooms
FROM airbnb_listings
GROUP BY country
ORDER BY avg_rooms ASC;
For Japan and the USA, get the average number of rooms per listing in each country
SELECT country, AVG(number_of_rooms)
FROM airbnb_listings
WHERE country IN ('USA', 'Japan');
GROUP BY country;
Get the number of listings per country
SELECT country, COUNT(id) AS number_of_listings
FROM airbnb_listings
GROUP BY country;
Get all the years where there were more than 100 listings per year
SELECT year_listed
FROM airbnb_listings
GROUP BY year_listed
HAVING COUNT(id) > 100;