I hope this is the right forum to post this question.
I could not see where would be better suited than here so I am posting here.

So what I am looking for is a MySQL DB, preferably free but can pay for it, that has 3 Tables:
1- All countries of the World
at least should have: ID, Country name

2- All States/Provinces of each Country, of course not all countries have states.
at least should have: ID, country_id, state_name

2- Cities of each State, can be the Top 50 or 10 cities of each state
at least should have: ID, state_id, city_name