In the previous lesson, we’ve filtered records from the users
table by country:
SELECT *
FROM users
WHERE
country = 'de'
What questions are popping up in your head at this moment? Probably something similar to these:
country
column?country
column values for other countries?In this lesson, let’s answer these questions one by one.
At the moment, there are ~250 countries in the world. Some of them have very long names like Saint Vincent and the Grenadines or South Georgia and the South Sandwich Islands (South Sandwich , really? ).
Quite often, organizations all over the world need to store country related information: customers address, delivery address, etc. It’s quite cumbersome to always refer to the country by its name (it literally cost paper or computer space). This is why the International Organization for Standardization (ISO) developed a standard – two-letter country codes to represent all countries.
When users sign up on the web or via a mobile app, their browser (or the mobile app) sends a request to the company’s servers with their email and password. But that’s not all of it! User’s cookies (for web signups) and an IP address are also visible to the server.
The country is derived from an IP address via the process called IP Geolocation. It’s very simple, actually – there’s literally a table of all IP addresses and their locations. There are companies like Maxmind which maintain these tables up to date and sell them as a service.
To sum it up: every time someone signs up for Bindle we store not just their email and password, but also a country derived from the IP address.
These are all country codes according to ISO 3166 standard:
Country code | Country name |
ad | Andorra |
ae | United Arab Emirates |
af | Afghanistan |
ag | Antigua and Barbuda |
ai | Anguilla |
al | Albania |
am | Armenia |
ao | Angola |
ap | Asia/Pacific Region |
aq | Antarctica |
ar | Argentina |
as | American Samoa |
at | Austria |
au | Australia |
aw | Aruba |
ax | Aland Islands |
az | Azerbaijan |
ba | Bosnia and Herzegovina |
bb | Barbados |
bd | Bangladesh |
be | Belgium |
bf | Burkina Faso |
bg | Bulgaria |
bh | Bahrain |
bi | Burundi |
bj | Benin |
bl | Saint Barthelemy |
bm | Bermuda |
bn | Brunei Darussalam |
bo | Bolivia |
bq | Bonaire, Saint Eustatius and Saba |
br | Brazil |
bs | Bahamas |
bt | Bhutan |
bv | Bouvet Island |
bw | Botswana |
by | Belarus |
bz | Belize |
ca | Canada |
cc | Cocos (Keeling) Islands |
cd | Congo, The Democratic Republic of the |
cf | Central African Republic |
cg | Congo |
ch | Switzerland |
ci | Cote d’Ivoire |
ck | Cook Islands |
cl | Chile |
cm | Cameroon |
cn | China |
co | Colombia |
cr | Costa Rica |
cu | Cuba |
cv | Cape Verde |
cw | Curacao |
cx | Christmas Island |
cy | Cyprus |
cz | Czech Republic |
de | Germany |
dj | Djibouti |
dk | Denmark |
dm | Dominica |
do | Dominican Republic |
dz | Algeria |
ec | Ecuador |
ee | Estonia |
eg | Egypt |
eh | Western Sahara |
er | Eritrea |
es | Spain |
et | Ethiopia |
eu | Europe |
fi | Finland |
fj | Fiji |
fk | Falkland Islands (Malvinas) |
fm | Micronesia, Federated States of |
fo | Faroe Islands |
fr | France |
ga | Gabon |
gb | United Kingdom |
gd | Grenada |
ge | Georgia |
gf | French Guiana |
gg | Guernsey |
gh | Ghana |
gi | Gibraltar |
gl | Greenland |
gm | Gambia |
gn | Guinea |
gp | Guadeloupe |
gq | Equatorial Guinea |
gr | Greece |
gs | South Georgia and the South Sandwich Islands |
gt | Guatemala |
gu | Guam |
gw | Guinea-Bissau |
gy | Guyana |
hk | Hong Kong |
hm | Heard Island and McDonald Islands |
hn | Honduras |
hr | Croatia |
ht | Haiti |
hu | Hungary |
id | Indonesia |
ie | Ireland |
il | Israel |
im | Isle of Man |
in | India |
io | British Indian Ocean Territory |
iq | Iraq |
ir | Iran, Islamic Republic of |
is | Iceland |
it | Italy |
je | Jersey |
jm | Jamaica |
jo | Jordan |
jp | Japan |
ke | Kenya |
kg | Kyrgyzstan |
kh | Cambodia |
ki | Kiribati |
km | Comoros |
kn | Saint Kitts and Nevis |
kp | Korea, Democratic People’s Republic of |
kr | Korea, Republic of |
kw | Kuwait |
ky | Cayman Islands |
kz | Kazakhstan |
la | Lao People’s Democratic Republic |
lb | Lebanon |
lc | Saint Lucia |
li | Liechtenstein |
lk | Sri Lanka |
lr | Liberia |
ls | Lesotho |
lt | Lithuania |
lu | Luxembourg |
lv | Latvia |
ly | Libyan Arab Jamahiriya |
ma | Morocco |
mc | Monaco |
md | Moldova, Republic of |
me | Montenegro |
mf | Saint Martin |
mg | Madagascar |
mh | Marshall Islands |
mk | Macedonia |
ml | Mali |
mm | Myanmar |
mn | Mongolia |
mo | Macao |
mp | Northern Mariana Islands |
mq | Martinique |
mr | Mauritania |
ms | Montserrat |
mt | Malta |
mu | Mauritius |
mv | Maldives |
mw | Malawi |
mx | Mexico |
my | Malaysia |
mz | Mozambique |
na | Namibia |
nc | New Caledonia |
ne | Niger |
nf | Norfolk Island |
ng | Nigeria |
ni | Nicaragua |
nl | Netherlands |
no | Norway |
np | Nepal |
nr | Nauru |
nu | Niue |
nz | New Zealand |
om | Oman |
pa | Panama |
pe | Peru |
pf | French Polynesia |
pg | Papua New Guinea |
ph | Philippines |
pk | Pakistan |
pl | Poland |
pm | Saint Pierre and Miquelon |
pn | Pitcairn |
pr | Puerto Rico |
ps | Palestinian Territory |
pt | Portugal |
pw | Palau |
py | Paraguay |
qa | Qatar |
re | Reunion |
ro | Romania |
rs | Serbia |
ru | Russian Federation |
rw | Rwanda |
sa | Saudi Arabia |
sb | Solomon Islands |
sc | Seychelles |
sd | Sudan |
se | Sweden |
sg | Singapore |
sh | Saint Helena |
si | Slovenia |
sj | Svalbard and Jan Mayen |
sk | Slovakia |
sl | Sierra Leone |
sm | San Marino |
sn | Senegal |
so | Somalia |
sr | Suriname |
ss | South Sudan |
st | Sao Tome and Principe |
sv | El Salvador |
sx | Sint Maarten |
sy | Syrian Arab Republic |
sz | Swaziland |
tc | Turks and Caicos Islands |
td | Chad |
tf | French Southern Territories |
tg | Togo |
th | Thailand |
tj | Tajikistan |
tk | Tokelau |
tl | Timor-Leste |
tm | Turkmenistan |
tn | Tunisia |
to | Tonga |
tr | Turkey |
tt | Trinidad and Tobago |
tv | Tuvalu |
tw | Taiwan |
tz | Tanzania, United Republic of |
ua | Ukraine |
ug | Uganda |
um | United States Minor Outlying Islands |
us | United States |
uy | Uruguay |
uz | Uzbekistan |
va | Holy See (Vatican City State) |
vc | Saint Vincent and the Grenadines |
ve | Venezuela |
vg | Virgin Islands, British |
vi | Virgin Islands, U.S. |
vn | Vietnam |
vu | Vanuatu |
wf | Wallis and Futuna |
ws | Samoa |
ye | Yemen |
yt | Mayotte |
za | South Africa |
zm | Zambia |
zw | Zimbabwe |
Whoa, a lot of country codes!
We’ve touched enough on filters and even learned some tech specifics behind country codes. It’s time we do the first exercise!
Hi, it’s Anatoli, the author of SQL Habit.
SQL Habit is a course (or, as some of the students say, “business simulator”). It’s based on a story of a fictional startup called Bindle. You’ll play a role of their Data Analyst and solve real-life challenges from Business, Marketing, and Product Management.
SQL Habit course is made of bite-sized lessons (you’re looking at one atm) and exercises. They always have a real-life setting and detailed explanations. You can immediately apply everything you’ve learned at work.