Data covers 1930–2022 (all 22 tournaments, 900+ matches, 2,700+ goals).
Keep in mind that the schema and data may vary depending on the source, so you may need to modify your SQL queries accordingly.
I’ve prepared a clean, version-controlled copy for you. No registration, no paywalls. worldcup database sqlite download
Whether you are a data scientist looking for a fresh project or a football fan wanting to settle a "GOAT" debate with hard numbers, finding a clean is the best place to start. Unlike bulky CSV files, an SQLite database allows you to run complex queries, link players to matches, and analyze historical trends in seconds. Where to Download a World Cup SQLite Database
CREATE TABLE results ( id INTEGER PRIMARY KEY, match_id INTEGER, winner_id INTEGER, loser_id INTEGER, score TEXT, FOREIGN KEY (match_id) REFERENCES matches (id), FOREIGN KEY (winner_id) REFERENCES teams (id), FOREIGN KEY (loser_id) REFERENCES teams (id) ); Data covers 1930–2022 (all 22 tournaments, 900+ matches,
CREATE TABLE matches ( id INTEGER PRIMARY KEY, date DATE, team1_id INTEGER, team2_id INTEGER, score TEXT, stadium TEXT, FOREIGN KEY (team1_id) REFERENCES teams (id), FOREIGN KEY (team2_id) REFERENCES teams (id) );
: It is significantly faster to query specific matches (e.g., "all matches where Argentina played Germany") than to search through a text file. Common Data Included in These Downloads No registration, no paywalls
CREATE TABLE players ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, date_of_birth DATE, position TEXT, team_id INTEGER, FOREIGN KEY (team_id) REFERENCES teams (id) );