100% found this document useful (2 votes)
495 views

SQL Queries Cheatsheet: Querying Single Table Querying Multiple Tables

The document provides examples of different types of SQL queries for selecting, filtering, aggregating, and joining data from single and multiple tables, including using operators like WHERE, GROUP BY, HAVING, UNION, INTERSECT, and EXCEPT. It also demonstrates correlated subqueries and how to query data based on values from other tables. The examples cover common querying tasks like finding highest/lowest values, counts, sums, and averages.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
495 views

SQL Queries Cheatsheet: Querying Single Table Querying Multiple Tables

The document provides examples of different types of SQL queries for selecting, filtering, aggregating, and joining data from single and multiple tables, including using operators like WHERE, GROUP BY, HAVING, UNION, INTERSECT, and EXCEPT. It also demonstrates correlated subqueries and how to query data based on values from other tables. The examples cover common querying tasks like finding highest/lowest values, counts, sums, and averages.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

sql Queries Cheatsheet

Learn it all at academy.vertabelo.com

Querying single table Querying multiple tables

-- city names with their country names


Sample Data
SELECT city.name, country.name
country FROM city JOIN country ON city.country_id = country.id;
id name population area
1 France 66600000 640680
2 Germany 80700000 357000
... ... ... ... -- fetch only cities with non-null matching countries
city (INNER) JOIN country
city
id name country_id population rating
1 Paris 1 2243000 5 city country
2 Berlin 2 3460000 3 id name country_id id name
... ... ... ... ... 1 Paris 1 1 France
2 Berlin 2 2 Germany
3 Warsaw 4 3 Iceland

-- all columns from table country

SELECT * FROM country;


-- fetch all cities even if no matching country exists
-- columns id and name from table city city LEFT (OUTER) JOIN country

SELECT id, name FROM city;


city country
-- names of cities which... id name country_id id name
1 Paris 1 1 France
SELECT name FROM city WHERE... 2 Berlin 2 2 Germany
3 Warsaw 4 null null
-- have a rating above 3

rating > 3;

-- start with a 'P' or end with an 's' -- fetch all countries even if no matching cities exist
city RIGHT (OUTER) JOIN country
name LIKE 'P%' OR name LIKE '%s';

-- start with any letter followed by ublin city country


-- (like Dublin in Ireland and Lublin in Poland) id name country_id id name
1 Paris 1 1 France
name LIKE '_ublin';
2 Berlin 2 2 Germany
null null null 3 Iceland
-- are not Berlin or Madrid

name != 'Berlin' AND name != 'Madrid';

-- have a population between 1M and 5M -- fetch all cities and all countries even if no matching
-- values exist in the other table
population BETWEEN 1000000 AND 5000000; city FULL (OUTER) JOIN country

-- do not have a missing rating value


city country
rating IS NOT NULL; id name country_id id name
1 Paris 1 1 France
-- are in countries 1, 4, 7 or 8 2 Berlin 2 2 Germany
3 Warsaw 4 null null
country_id IN (1,4,7,8);
null null null 3 Iceland
sql Queries Cheatsheet
Learn it all at academy.vertabelo.com

AGGREGATION/GROUPING CORRELATED
-- cities with population greater than
-- cities with highest rating first -- average population in the country

SELECT name FROM city ORDER BY rating DESC; SELECT * FROM city main_city
WHERE population >
-- number of all cities (SELECT AVG(population)
FROM city average_city
SELECT COUNT(*) FROM city; WHERE average_city.country_id =
main_city.country_id);
-- number of cities with non-null rating
-- countries that have at least one city
SELECT COUNT(rating) FROM city;
SELECT name FROM country
WHERE EXISTS (SELECT * FROM city
-- number of distinctive country values
WHERE country_id = country.id);
SELECT COUNT(DISTINCT country_id)
FROM city;

-- smallest and greatest country population


SET OPERATIONS
SELECT MIN(population), MAX(population)
FROM country;

-- total population of cities in respective countries cycling skating


id name country id name country
SELECT country_id, SUM(population)
1 YK DE 1 YK DE
FROM city GROUP BY country_id;
2 ZG DE 2 DF DE
3 WT PL 3 AK PL
-- average rating for cities in
... ... ... ... ... ...
-- respective countries if the average
-- is above 3.0

SELECT country_id, AVG(rating) FROM


city GROUP BY country_id -- German cyclers together with German
HAVING AVG(rating) > 3; -- skaters (ALL shows repetitions)
SELECT name FROM cycling
WHERE country = 'DE'
UNION (ALL)
SELECT name FROM skating
SUBQUERIES WHERE country = 'DE'; UNION

SINGLE VALUE
-- German cyclers that are also German
-- cities with the same rating as Paris -- skaters at the same time

SELECT name FROM city SELECT name FROM cycling


WHERE rating = (SELECT rating WHERE country = 'DE'
FROM city INTERSECT
WHERE name = 'Paris'); SELECT name FROM skating
WHERE country = 'DE'; INTERSECT

MULTIPLE VALUES
-- German cyclers unless they are also
-- cities in countries that have -- German skaters at the same time
-- a population above 20M
SELECT name FROM cycling
SELECT name FROM city WHERE country = 'DE'
WHERE country_id IN EXCEPT/MINUS
(SELECT country_id FROM country SELECT name FROM skating
WHERE population > 20000000); WHERE country = 'DE'; EXCEPT

You might also like