Difference between revisions of "SQLZOO:SELECT basics"
Line 144: | Line 144: | ||
</source> | </source> | ||
</div> | </div> | ||
− | You are ready for tutorial one:[ | + | You are ready for tutorial one:[http://www.sqlzoo.net/w/index.php/SELECT_from_BBC_Tutorial SELECT statements with WHERE.] |
Revision as of 08:12, 11 July 2012
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
You are ready for tutorial one:SELECT statements with WHERE.