sqlite demo expanded

This commit is contained in:
thomashamburg 2025-10-16 18:33:14 +02:00
parent 77a5e61a31
commit 78d36b4178
6 changed files with 55 additions and 199 deletions

View File

@ -5,7 +5,7 @@
WITH raw AS ( WITH raw AS (
SELECT SELECT
value AS country value AS country
FROM json_each(readfile('j_countries.json')) FROM json_each(readfile('countries.json'))
) )
SELECT SELECT

View File

@ -4,7 +4,7 @@
WITH raw AS ( WITH raw AS (
SELECT SELECT
value AS country value AS country
FROM json_each(readfile('j_countries.json')) FROM json_each(readfile('countries.json'))
) )
SELECT SELECT
json_extract(country, '$.translations.deu.common') AS german_name, json_extract(country, '$.translations.deu.common') AS german_name,

View File

@ -1 +1 @@
SELECT * FROM json_each(readfile('j_countries.json')); SELECT * FROM json_each(readfile('countries.json'));

View File

@ -1,196 +0,0 @@
german_name,population,capital,timezones
Afghanistan,40218234,Kabul,UTC+04:30
Albanien,2837743,Tirana,UTC+01:00
Algerien,44700000,Algiers,UTC+01:00
Andorra,77265,"Andorra la Vella",UTC+01:00
Angola,32866268,Luanda,UTC+01:00
"Antigua und Barbuda",97928,"Saint John's",UTC-04:00
Argentinien,45376763,"Buenos Aires",UTC-03:00
Armenien,2963234,Yerevan,UTC+04:00
Aserbaidschan,10110116,Baku,UTC+04:00
Australien,25687041,Canberra,UTC+05:00
Bahamas,393248,Nassau,UTC-05:00
Bahrain,1701583,Manama,UTC+03:00
Bangladesch,164689383,Dhaka,UTC+06:00
Barbados,287371,Bridgetown,UTC-04:00
Belgien,11555997,Brussels,UTC+01:00
Belize,397621,Belmopan,UTC-06:00
Benin,12123198,Porto-Novo,UTC+01:00
Bhutan,771612,Thimphu,UTC+06:00
Bolivien,11673029,Sucre,UTC-04:00
"Bosnien und Herzegowina",3280815,Sarajevo,UTC+01:00
Botswana,2351625,Gaborone,UTC+02:00
Brasilien,212559409,"Brasília",UTC-05:00
Brunei,437483,"Bandar Seri Begawan",UTC+08:00
Bulgarien,6927288,Sofia,UTC+02:00
"Burkina Faso",20903278,Ouagadougou,UTC
Burundi,11890781,Gitega,UTC+02:00
Chile,19116209,Santiago,UTC-06:00
China,1402112000,Beijing,UTC+08:00
"Costa Rica",5094114,"San José",UTC-06:00
Deutschland,83240525,Berlin,UTC+01:00
Dominica,71991,Roseau,UTC-04:00
"Dominikanische Republik",10847904,"Santo Domingo",UTC-04:00
Dschibuti,988002,Djibouti,UTC+03:00
"Dänemark",5831404,Copenhagen,UTC-04:00
Ecuador,17643060,Quito,UTC-06:00
"El Salvador",6486201,"San Salvador",UTC-06:00
"Elfenbeinküste",26378275,Yamoussoukro,UTC
Eritrea,5352000,Asmara,UTC+03:00
Estland,1331057,Tallinn,UTC+02:00
Fidschi,896444,Suva,UTC+12:00
Finnland,5530719,Helsinki,UTC+02:00
Frankreich,67391582,Paris,UTC-10:00
Gabun,2225728,Libreville,UTC+01:00
Gambia,2416664,Banjul,UTC+00:00
Georgien,3714000,Tbilisi,UTC+04:00
Ghana,31072945,Accra,UTC
Grenada,112519,"St. George's",UTC-04:00
Griechenland,10715549,Athens,UTC+02:00
Guatemala,16858333,"Guatemala City",UTC-06:00
Guinea,13132792,Conakry,UTC
Guinea-Bissau,1967998,Bissau,UTC
Guyana,786559,Georgetown,UTC-04:00
Haiti,11402533,Port-au-Prince,UTC-05:00
Honduras,9904608,Tegucigalpa,UTC-06:00
Indien,1380004385,"New Delhi",UTC+05:30
Indonesien,273523621,Jakarta,UTC+07:00
Irak,40222503,Baghdad,UTC+03:00
Iran,83992953,Tehran,UTC+03:30
Irland,4994724,Dublin,UTC
Island,366425,Reykjavik,UTC
Israel,9216900,Jerusalem,UTC+02:00
Italien,59554023,Rome,UTC+01:00
Jamaika,2961161,Kingston,UTC-05:00
Japan,125836021,Tokyo,UTC+09:00
Jemen,29825968,"Sana'a",UTC+03:00
Jordanien,10203140,Amman,UTC+03:00
Kambodscha,16718971,"Phnom Penh",UTC+07:00
Kamerun,26545864,"Yaoundé",UTC+01:00
Kanada,38005238,Ottawa,UTC-08:00
"Kap Verde",555988,Praia,UTC-01:00
Kasachstan,18754440,Astana,UTC+05:00
Katar,2881060,Doha,UTC+03:00
Kenia,53771300,Nairobi,UTC+03:00
Kirgisistan,6591600,Bishkek,UTC+06:00
Kiribati,119446,"South Tarawa",UTC+12:00
Kolumbien,50882884,"Bogotá",UTC-05:00
Komoren,869595,Moroni,UTC+03:00
Kongo,5657000,Brazzaville,UTC+01:00
"Kongo (Dem. Rep.)",108407721,Kinshasa,UTC+01:00
Kosovo,1775378,Pristina,UTC+01:00
Kroatien,4047200,Zagreb,UTC+01:00
Kuba,11326616,Havana,UTC-05:00
Kuwait,4270563,"Kuwait City",UTC+03:00
Laos,7275556,Vientiane,UTC+07:00
Lesotho,2142252,Maseru,UTC+02:00
Lettland,1901548,Riga,UTC+02:00
Libanon,6825442,Beirut,UTC+02:00
Liberia,5057677,Monrovia,UTC
Libyen,6871287,Tripoli,UTC+01:00
Liechtenstein,38137,Vaduz,UTC+01:00
Litauen,2794700,Vilnius,UTC+02:00
Luxemburg,632275,Luxembourg,UTC+01:00
Madagaskar,27691019,Antananarivo,UTC+03:00
Malawi,19129955,Lilongwe,UTC+02:00
Malaysia,32365998,"Kuala Lumpur",UTC+08:00
Malediven,540542,"Malé",UTC+05:00
Mali,20250834,Bamako,UTC
Malta,525285,Valletta,UTC+01:00
Marokko,36910558,Rabat,UTC
Marshallinseln,59194,Majuro,UTC+12:00
Mauretanien,4649660,Nouakchott,UTC
Mauritius,1265740,"Port Louis",UTC+04:00
Mexiko,128932753,"Mexico City",UTC-08:00
Mikronesien,115021,Palikir,UTC+10:00
Moldawien,2617820,"Chișinău",UTC+02:00
Monaco,39244,Monaco,UTC+01:00
Mongolei,3278292,"Ulan Bator",UTC+07:00
Montenegro,621718,Podgorica,UTC+01:00
Mosambik,31255435,Maputo,UTC+02:00
Myanmar,54409794,Naypyidaw,UTC+06:30
Namibia,2540916,Windhoek,UTC+01:00
Nauru,10834,Yaren,UTC+12:00
Nepal,29136808,Kathmandu,UTC+05:45
Neuseeland,5084300,Wellington,UTC-11:00
Nicaragua,6624554,Managua,UTC-06:00
Niederlande,16655799,Amsterdam,UTC+01:00
Niger,24206636,Niamey,UTC+01:00
Nigeria,206139587,Abuja,UTC+01:00
Nordkorea,25778815,Pyongyang,UTC+09:00
Nordmazedonien,2077132,Skopje,UTC+01:00
Norwegen,5379475,Oslo,UTC+01:00
Oman,5106622,Muscat,UTC+04:00
Osttimor,1318442,Dili,UTC+09:00
Pakistan,220892331,Islamabad,UTC+05:00
Palau,18092,Ngerulmud,UTC+09:00
Panama,4314768,"Panama City",UTC-05:00
Papua-Neuguinea,8947027,"Port Moresby",UTC+10:00
Paraguay,7132530,"Asunción",UTC-04:00
Peru,32971846,Lima,UTC-05:00
Philippinen,109581085,Manila,UTC+08:00
Polen,37950802,Warsaw,UTC+01:00
Portugal,10305564,Lisbon,UTC-01:00
Ruanda,12952209,Kigali,UTC+02:00
"Rumänien",19286123,Bucharest,UTC+02:00
Russland,144104080,Moscow,UTC+03:00
Salomonen,686878,Honiara,UTC+11:00
Sambia,18383956,Lusaka,UTC+02:00
Samoa,198410,Apia,UTC+13:00
"San Marino",33938,"City of San Marino",UTC+01:00
Saudi-Arabien,34813867,Riyadh,UTC+03:00
Schweden,10353442,Stockholm,UTC+01:00
Schweiz,8654622,Bern,UTC+01:00
Senegal,16743930,Dakar,UTC
Serbien,6908224,Belgrade,UTC+01:00
Seychellen,98462,Victoria,UTC+04:00
"Sierra Leone",7976985,Freetown,UTC
Simbabwe,14862927,Harare,UTC+02:00
Singapur,5685807,Singapore,UTC+08:00
Slowakei,5458827,Bratislava,UTC+01:00
Slowenien,2100126,Ljubljana,UTC+01:00
Somalia,15893219,Mogadishu,UTC+03:00
Spanien,47351567,Madrid,UTC
"Sri Lanka",21919000,"Sri Jayawardenepura Kotte",UTC+05:30
"St. Kitts und Nevis",53192,Basseterre,UTC-04:00
"St. Lucia",183629,Castries,UTC-04:00
"St. Vincent und die Grenadinen",110947,Kingstown,UTC-04:00
Sudan,43849269,Khartoum,UTC+03:00
Suriname,586634,Paramaribo,UTC-03:00
Swasiland,1160164,Mbabane,UTC+02:00
Syrien,17500657,Damascus,UTC+02:00
"São Tomé und Príncipe",219161,"São Tomé",UTC
"Südafrika",59308690,Pretoria,UTC+02:00
"Südkorea",51780579,Seoul,UTC+09:00
"Südsudan",11193729,Juba,UTC+03:00
Tadschikistan,9537642,Dushanbe,UTC+05:00
Tansania,59734213,Dodoma,UTC+03:00
Thailand,69799978,Bangkok,UTC+07:00
Togo,8278737,"Lomé",UTC
Tonga,105697,"Nuku'alofa",UTC+13:00
"Trinidad und Tobago",1399491,"Port of Spain",UTC-04:00
Tschad,16425859,"N'Djamena",UTC+01:00
Tschechien,10698896,Prague,UTC+01:00
Tunesien,11818618,Tunis,UTC+01:00
Turkmenistan,6031187,Ashgabat,UTC+05:00
Tuvalu,11792,Funafuti,UTC+12:00
"Türkei",84339067,Ankara,UTC+03:00
Uganda,45741000,Kampala,UTC+03:00
Ukraine,44134693,Kyiv,UTC+02:00
Ungarn,9749763,Budapest,UTC+01:00
Uruguay,3473727,Montevideo,UTC-03:00
Usbekistan,34232050,Tashkent,UTC+05:00
Vanuatu,307150,"Port Vila",UTC+11:00
Vatikanstadt,451,"Vatican City",UTC+01:00
Venezuela,28435943,Caracas,UTC-04:00
"Vereinigte Arabische Emirate",9890400,"Abu Dhabi",UTC+04:00
"Vereinigte Staaten",329484123,"Washington, D.C.",UTC-12:00
"Vereinigtes Königreich",67215293,London,UTC-08:00
Vietnam,97338583,Hanoi,UTC+07:00
"Weißrussland",9398861,Minsk,UTC+03:00
"Zentralafrikanische Republik",4829764,Bangui,UTC+01:00
Zypern,1207361,Nicosia,UTC+02:00
"Ägypten",102334403,Cairo,UTC+02:00
"Äquatorialguinea",1402985,Malabo,UTC+01:00
"Äthiopien",114963583,"Addis Ababa",UTC+03:00
"Österreich",8917205,Vienna,UTC+01:00
1 german_name population capital timezones
2 Afghanistan 40218234 Kabul UTC+04:30
3 Albanien 2837743 Tirana UTC+01:00
4 Algerien 44700000 Algiers UTC+01:00
5 Andorra 77265 Andorra la Vella UTC+01:00
6 Angola 32866268 Luanda UTC+01:00
7 Antigua und Barbuda 97928 Saint John's UTC-04:00
8 Argentinien 45376763 Buenos Aires UTC-03:00
9 Armenien 2963234 Yerevan UTC+04:00
10 Aserbaidschan 10110116 Baku UTC+04:00
11 Australien 25687041 Canberra UTC+05:00
12 Bahamas 393248 Nassau UTC-05:00
13 Bahrain 1701583 Manama UTC+03:00
14 Bangladesch 164689383 Dhaka UTC+06:00
15 Barbados 287371 Bridgetown UTC-04:00
16 Belgien 11555997 Brussels UTC+01:00
17 Belize 397621 Belmopan UTC-06:00
18 Benin 12123198 Porto-Novo UTC+01:00
19 Bhutan 771612 Thimphu UTC+06:00
20 Bolivien 11673029 Sucre UTC-04:00
21 Bosnien und Herzegowina 3280815 Sarajevo UTC+01:00
22 Botswana 2351625 Gaborone UTC+02:00
23 Brasilien 212559409 Brasília UTC-05:00
24 Brunei 437483 Bandar Seri Begawan UTC+08:00
25 Bulgarien 6927288 Sofia UTC+02:00
26 Burkina Faso 20903278 Ouagadougou UTC
27 Burundi 11890781 Gitega UTC+02:00
28 Chile 19116209 Santiago UTC-06:00
29 China 1402112000 Beijing UTC+08:00
30 Costa Rica 5094114 San José UTC-06:00
31 Deutschland 83240525 Berlin UTC+01:00
32 Dominica 71991 Roseau UTC-04:00
33 Dominikanische Republik 10847904 Santo Domingo UTC-04:00
34 Dschibuti 988002 Djibouti UTC+03:00
35 Dänemark 5831404 Copenhagen UTC-04:00
36 Ecuador 17643060 Quito UTC-06:00
37 El Salvador 6486201 San Salvador UTC-06:00
38 Elfenbeinküste 26378275 Yamoussoukro UTC
39 Eritrea 5352000 Asmara UTC+03:00
40 Estland 1331057 Tallinn UTC+02:00
41 Fidschi 896444 Suva UTC+12:00
42 Finnland 5530719 Helsinki UTC+02:00
43 Frankreich 67391582 Paris UTC-10:00
44 Gabun 2225728 Libreville UTC+01:00
45 Gambia 2416664 Banjul UTC+00:00
46 Georgien 3714000 Tbilisi UTC+04:00
47 Ghana 31072945 Accra UTC
48 Grenada 112519 St. George's UTC-04:00
49 Griechenland 10715549 Athens UTC+02:00
50 Guatemala 16858333 Guatemala City UTC-06:00
51 Guinea 13132792 Conakry UTC
52 Guinea-Bissau 1967998 Bissau UTC
53 Guyana 786559 Georgetown UTC-04:00
54 Haiti 11402533 Port-au-Prince UTC-05:00
55 Honduras 9904608 Tegucigalpa UTC-06:00
56 Indien 1380004385 New Delhi UTC+05:30
57 Indonesien 273523621 Jakarta UTC+07:00
58 Irak 40222503 Baghdad UTC+03:00
59 Iran 83992953 Tehran UTC+03:30
60 Irland 4994724 Dublin UTC
61 Island 366425 Reykjavik UTC
62 Israel 9216900 Jerusalem UTC+02:00
63 Italien 59554023 Rome UTC+01:00
64 Jamaika 2961161 Kingston UTC-05:00
65 Japan 125836021 Tokyo UTC+09:00
66 Jemen 29825968 Sana'a UTC+03:00
67 Jordanien 10203140 Amman UTC+03:00
68 Kambodscha 16718971 Phnom Penh UTC+07:00
69 Kamerun 26545864 Yaoundé UTC+01:00
70 Kanada 38005238 Ottawa UTC-08:00
71 Kap Verde 555988 Praia UTC-01:00
72 Kasachstan 18754440 Astana UTC+05:00
73 Katar 2881060 Doha UTC+03:00
74 Kenia 53771300 Nairobi UTC+03:00
75 Kirgisistan 6591600 Bishkek UTC+06:00
76 Kiribati 119446 South Tarawa UTC+12:00
77 Kolumbien 50882884 Bogotá UTC-05:00
78 Komoren 869595 Moroni UTC+03:00
79 Kongo 5657000 Brazzaville UTC+01:00
80 Kongo (Dem. Rep.) 108407721 Kinshasa UTC+01:00
81 Kosovo 1775378 Pristina UTC+01:00
82 Kroatien 4047200 Zagreb UTC+01:00
83 Kuba 11326616 Havana UTC-05:00
84 Kuwait 4270563 Kuwait City UTC+03:00
85 Laos 7275556 Vientiane UTC+07:00
86 Lesotho 2142252 Maseru UTC+02:00
87 Lettland 1901548 Riga UTC+02:00
88 Libanon 6825442 Beirut UTC+02:00
89 Liberia 5057677 Monrovia UTC
90 Libyen 6871287 Tripoli UTC+01:00
91 Liechtenstein 38137 Vaduz UTC+01:00
92 Litauen 2794700 Vilnius UTC+02:00
93 Luxemburg 632275 Luxembourg UTC+01:00
94 Madagaskar 27691019 Antananarivo UTC+03:00
95 Malawi 19129955 Lilongwe UTC+02:00
96 Malaysia 32365998 Kuala Lumpur UTC+08:00
97 Malediven 540542 Malé UTC+05:00
98 Mali 20250834 Bamako UTC
99 Malta 525285 Valletta UTC+01:00
100 Marokko 36910558 Rabat UTC
101 Marshallinseln 59194 Majuro UTC+12:00
102 Mauretanien 4649660 Nouakchott UTC
103 Mauritius 1265740 Port Louis UTC+04:00
104 Mexiko 128932753 Mexico City UTC-08:00
105 Mikronesien 115021 Palikir UTC+10:00
106 Moldawien 2617820 Chișinău UTC+02:00
107 Monaco 39244 Monaco UTC+01:00
108 Mongolei 3278292 Ulan Bator UTC+07:00
109 Montenegro 621718 Podgorica UTC+01:00
110 Mosambik 31255435 Maputo UTC+02:00
111 Myanmar 54409794 Naypyidaw UTC+06:30
112 Namibia 2540916 Windhoek UTC+01:00
113 Nauru 10834 Yaren UTC+12:00
114 Nepal 29136808 Kathmandu UTC+05:45
115 Neuseeland 5084300 Wellington UTC-11:00
116 Nicaragua 6624554 Managua UTC-06:00
117 Niederlande 16655799 Amsterdam UTC+01:00
118 Niger 24206636 Niamey UTC+01:00
119 Nigeria 206139587 Abuja UTC+01:00
120 Nordkorea 25778815 Pyongyang UTC+09:00
121 Nordmazedonien 2077132 Skopje UTC+01:00
122 Norwegen 5379475 Oslo UTC+01:00
123 Oman 5106622 Muscat UTC+04:00
124 Osttimor 1318442 Dili UTC+09:00
125 Pakistan 220892331 Islamabad UTC+05:00
126 Palau 18092 Ngerulmud UTC+09:00
127 Panama 4314768 Panama City UTC-05:00
128 Papua-Neuguinea 8947027 Port Moresby UTC+10:00
129 Paraguay 7132530 Asunción UTC-04:00
130 Peru 32971846 Lima UTC-05:00
131 Philippinen 109581085 Manila UTC+08:00
132 Polen 37950802 Warsaw UTC+01:00
133 Portugal 10305564 Lisbon UTC-01:00
134 Ruanda 12952209 Kigali UTC+02:00
135 Rumänien 19286123 Bucharest UTC+02:00
136 Russland 144104080 Moscow UTC+03:00
137 Salomonen 686878 Honiara UTC+11:00
138 Sambia 18383956 Lusaka UTC+02:00
139 Samoa 198410 Apia UTC+13:00
140 San Marino 33938 City of San Marino UTC+01:00
141 Saudi-Arabien 34813867 Riyadh UTC+03:00
142 Schweden 10353442 Stockholm UTC+01:00
143 Schweiz 8654622 Bern UTC+01:00
144 Senegal 16743930 Dakar UTC
145 Serbien 6908224 Belgrade UTC+01:00
146 Seychellen 98462 Victoria UTC+04:00
147 Sierra Leone 7976985 Freetown UTC
148 Simbabwe 14862927 Harare UTC+02:00
149 Singapur 5685807 Singapore UTC+08:00
150 Slowakei 5458827 Bratislava UTC+01:00
151 Slowenien 2100126 Ljubljana UTC+01:00
152 Somalia 15893219 Mogadishu UTC+03:00
153 Spanien 47351567 Madrid UTC
154 Sri Lanka 21919000 Sri Jayawardenepura Kotte UTC+05:30
155 St. Kitts und Nevis 53192 Basseterre UTC-04:00
156 St. Lucia 183629 Castries UTC-04:00
157 St. Vincent und die Grenadinen 110947 Kingstown UTC-04:00
158 Sudan 43849269 Khartoum UTC+03:00
159 Suriname 586634 Paramaribo UTC-03:00
160 Swasiland 1160164 Mbabane UTC+02:00
161 Syrien 17500657 Damascus UTC+02:00
162 São Tomé und Príncipe 219161 São Tomé UTC
163 Südafrika 59308690 Pretoria UTC+02:00
164 Südkorea 51780579 Seoul UTC+09:00
165 Südsudan 11193729 Juba UTC+03:00
166 Tadschikistan 9537642 Dushanbe UTC+05:00
167 Tansania 59734213 Dodoma UTC+03:00
168 Thailand 69799978 Bangkok UTC+07:00
169 Togo 8278737 Lomé UTC
170 Tonga 105697 Nuku'alofa UTC+13:00
171 Trinidad und Tobago 1399491 Port of Spain UTC-04:00
172 Tschad 16425859 N'Djamena UTC+01:00
173 Tschechien 10698896 Prague UTC+01:00
174 Tunesien 11818618 Tunis UTC+01:00
175 Turkmenistan 6031187 Ashgabat UTC+05:00
176 Tuvalu 11792 Funafuti UTC+12:00
177 Türkei 84339067 Ankara UTC+03:00
178 Uganda 45741000 Kampala UTC+03:00
179 Ukraine 44134693 Kyiv UTC+02:00
180 Ungarn 9749763 Budapest UTC+01:00
181 Uruguay 3473727 Montevideo UTC-03:00
182 Usbekistan 34232050 Tashkent UTC+05:00
183 Vanuatu 307150 Port Vila UTC+11:00
184 Vatikanstadt 451 Vatican City UTC+01:00
185 Venezuela 28435943 Caracas UTC-04:00
186 Vereinigte Arabische Emirate 9890400 Abu Dhabi UTC+04:00
187 Vereinigte Staaten 329484123 Washington, D.C. UTC-12:00
188 Vereinigtes Königreich 67215293 London UTC-08:00
189 Vietnam 97338583 Hanoi UTC+07:00
190 Weißrussland 9398861 Minsk UTC+03:00
191 Zentralafrikanische Republik 4829764 Bangui UTC+01:00
192 Zypern 1207361 Nicosia UTC+02:00
193 Ägypten 102334403 Cairo UTC+02:00
194 Äquatorialguinea 1402985 Malabo UTC+01:00
195 Äthiopien 114963583 Addis Ababa UTC+03:00
196 Österreich 8917205 Vienna UTC+01:00

52
demo/sqlite/tohtml.sql Normal file
View File

@ -0,0 +1,52 @@
.mode list
.separator ""
.output index.html
WITH raw AS (
SELECT
value AS country
FROM json_each(readfile('countries.json'))
),
rows AS (
SELECT
printf(
'<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
json_extract(country, '$.translations.deu.common'),
json_extract(country, '$.population'),
json_extract(country, '$.capital[0]'),
json_extract(country, '$.tld[0]'),
json_extract(country, '$.timezones')
) AS row_html
FROM raw
ORDER BY json_extract(country, '$.translations.deu.common')
)
SELECT
'<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Countries</title>
<style>
body { font-family: sans-serif; padding: 2rem; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ccc; padding: 0.5rem; text-align: left; }
th { background: #f2f2f2; }
tr:nth-child(even) { background: #fafafa; }
</style>
</head>
<body>
<h1>Countries</h1>
<table>
<thead>
<tr><th>Name (DE)</th><th>Population</th><th>Capital</th><th>TLD</th><th>Timezones</th></tr>
</thead>
<tbody>'
UNION ALL
SELECT row_html FROM rows
UNION ALL
SELECT
' </tbody>
</table>
</body>
</html>';
.output stdout