-- Database schema
| City : ID [ INTEGER ] primary_key , Name [ TEXT ] , CountryCode [ TEXT ] City.CountryCode = Country.Code , District [ TEXT ] , Population [ INTEGER ] | Country : Code [ TEXT ] primary_key , Name [ TEXT ] , Continent [ TEXT ] , Region [ TEXT ] , SurfaceArea [ REAL ] , IndepYear [ INTEGER ] , Population [ INTEGER ] , LifeExpectancy [ REAL ] , GNP [ REAL ] , GNPOld [ REAL ] , LocalName [ TEXT ] , GovernmentForm [ TEXT ] , HeadOfState [ TEXT ] , Capital [ INTEGER ] , Code2 [ TEXT ] | CountryLanguage : CountryCode [ TEXT ] CountryLanguage.CountryCode = Country.Code , Language [ TEXT ] , IsOfficial [ TEXT ] , Percentage [ REAL ] |
-- -- Provide the country, population, capital city, and official language of the country with the smallest surface area.

SELECT T1.Name, T1.Population, T1.Capital, T2.Language FROM Country AS T1 INNER JOIN CountryLanguage AS T2 ON T1.Code = T2.CountryCode INNER JOIN City AS T3 ON T1.Code = T3.CountryCode WHERE T2.IsOfficial = 'T' ORDER BY T1.SurfaceArea LIMIT 1;