SELECT basics
Introducing the BBC Table of Countries
This tutorial introduces SQL as a query language. We will be using the SELECT command on the table bbc:
| name | region | area | population | gdp |
|---|---|---|---|---|
| Afghanistan | South Asia | 652225 | 26000000 | |
| Albania | Europe | 28728 | 3200000 | 6656000000 |
| Algeria | Middle East | 2400000 | 32900000 | 75012000000 |
| Andorra | Europe | 468 | 64000 | |
| ... | ||||
The example shows the population of 'France'. Strings should be in 'single quotes';
Show the population of Germany
SELECT population FROM bbc WHERE name = 'France'
SELECT population FROM bbc WHERE name = 'Germany'
population/area
for each country where the area is over 5,000,000 km2.gdp/population
for each country where the area is over 5,000,000 km2SELECT name, population/area FROM bbc WHERE area > 5000000
SELECT name, gdp/population FROM bbc WHERE area > 5000000
Where to find some very small, very rich countries.
We use AND to ensure that two or more conditions hold
true.
SELECT name , region FROM bbc WHERE population < 2000000 AND gdp > 5000000000
SELECT name , region FROM bbc WHERE area < 2000 AND gdp > 5000000000
Checking a list The word IN allows us to check if an item is in a list. The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'
SELECT name, population FROM bbc WHERE name IN ('Ireland', 'Iceland', 'Denmark')
SELECT name, population FROM bbc WHERE name IN ('Denmark', 'Finland', 'Norway', 'Sweden')
What are the countries beginning with G?
The word LIKE permits pattern matching - % is the wildcard.
The examples shows countries beginning with D
SELECT name FROM bbc WHERE name LIKE 'D%'
SELECT name FROM bbc WHERE name LIKE 'G%'
Which countries are not too small and not too big?
BETWEEN allows range checking - note that it is inclusive.
SELECT name, area FROM bbc WHERE area BETWEEN 207600 AND 244820
SELECT name, area/1000 FROM bbc WHERE area BETWEEN 207600 AND 244820