BEGIN; attach database 'baseball-transformed.db' as 'transformed'; create table if not exists "awards" ( "ID" text, primary key("ID") ); insert into awards select distinct * from "transformed"."awards"; CREATE TABLE IF NOT EXISTS "franchises" ( "ID" TEXT, "name" TEXT, "active" TEXT, "NAassoc" TEXT, PRIMARY KEY("ID") ); insert into franchises select distinct * from "transformed"."franchises"; create table if not exists "teamseasons" ( "year" NUMERIC, "league" TEXT, "team" TEXT, "division" TEXT, "Rank" NUMERIC, "G" NUMERIC, "Ghome" NUMERIC, "W" NUMERIC, "L" NUMERIC, "DivWin" NUMERIC, "WCWin" NUMERIC, "LgWin" NUMERIC, "WSWin" NUMERIC, "R" NUMERIC, "AB" NUMERIC, "H" NUMERIC, "2B" NUMERIC, "3B" NUMERIC, "HR" NUMERIC, "BB" NUMERIC, "SO" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, "HBP" NUMERIC, "SF" NUMERIC, "RA" NUMERIC, "ER" NUMERIC, "ERA" NUMERIC, "CG" NUMERIC, "SHO" NUMERIC, "SV" NUMERIC, "IPouts" NUMERIC, "HA" NUMERIC, "HRA" NUMERIC, "BBA" NUMERIC, "SOA" NUMERIC, "E" NUMERIC, "DP" NUMERIC, "FP" NUMERIC, "name" NUMERIC, "park" NUMERIC, "attendance" NUMERIC, "BPF" NUMERIC, "PPF" NUMERIC, "teamIDBR" TEXT, "teamIDlahman45" TEXT, "teamIDretro" TEXT, PRIMARY KEY("year","team"), foreign key("year") references "seasons"("year"), foreign key("league") references "leagues"("ID"), foreign key("team") references "teams"("ID") ); insert into teamseasons select distinct * from "transformed"."teamseasons"; create table if not exists "seasons" ( "year" numeric, primary key("year") ); insert into seasons select distinct * from "transformed"."seasons"; CREATE TABLE "people" ( "ID" text, "birthYear" NUMERIC, "birthMonth" NUMERIC, "birthDay" NUMERIC, "birthCountry" text, "birthState" text, "birthCity" text, "deathYear" text, "deathMonth" text, "deathDay" text, "deathCountry" text, "deathState" text, "deathCity" text, "nameFirst" text, "nameLast" text, "nameGiven" text, "weight" NUMERIC, "height" NUMERIC, "bats" text, "throws" text, "debut" text, "finalGame" text, "retroID" text, "bbrefID" text, primary key("ID") ); INSERT INTO "people" SELECT DISTINCT * FROM "transformed"."people"; CREATE TABLE IF NOT EXISTS "parks" ( "ID" TEXT, "name" TEXT, "city" TEXT, "state" TEXT, "country" TEXT, PRIMARY KEY("ID") ); insert into "parks" select distinct * from "transformed"."parks"; CREATE TABLE IF NOT EXISTS "parkaliases" ( "park" TEXT, "alias" TEXT, PRIMARY KEY("park","alias"), foreign key("park") references "parks"("ID") ); insert into "parkaliases" select distinct * from "transformed"."parkaliases"; CREATE TABLE IF NOT EXISTS "collegeplaying" ( "player" TEXT, "school" TEXT, "year" NUMERIC, PRIMARY KEY("player","year","school"), foreign key("player") references "people"("ID"), foreign key("school") references "schools"("ID") ); insert into collegeplaying select distinct * from "transformed"."collegeplaying"; CREATE TABLE IF NOT EXISTS "schools" ( "ID" TEXT, "name_full" TEXT, "city" TEXT, "state" TEXT, "country" TEXT, PRIMARY KEY("ID") ); insert into schools select distinct * from "transformed"."schools"; CREATE TABLE IF NOT EXISTS "salaries" ( "year" NUMERIC, "team" TEXT, "player" TEXT, "salary" NUMERIC, PRIMARY KEY("year","player","team"), foreign key("player") references "people"("ID"), foreign key("year","team") references "teamseasons"("year","team") ); insert into salaries select distinct * from "transformed"."salaries"; CREATE TABLE IF NOT EXISTS "batting" ( "player" TEXT, "year" NUMERIC, "stint" NUMERIC, "G" NUMERIC, "AB" NUMERIC, "R" NUMERIC, "H" NUMERIC, "2B" NUMERIC, "3B" NUMERIC, "HR" NUMERIC, "RBI" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, "BB" NUMERIC, "SO" NUMERIC, "IBB" NUMERIC, "HBP" NUMERIC, "SH" NUMERIC, "SF" NUMERIC, "GIDP" NUMERIC, PRIMARY KEY("player","year","stint"), foreign key("year","player","stint") references "playerstints"("year","player","stint") ); insert into batting select distinct * from "transformed"."batting"; CREATE TABLE IF NOT EXISTS "fielding" ( "player" TEXT, "year" NUMERIC, "stint" NUMERIC, "POS" TEXT, "G" NUMERIC, "GS" NUMERIC, "InnOuts" NUMERIC, "PO" NUMERIC, "A" NUMERIC, "E" NUMERIC, "DP" NUMERIC, "PB" NUMERIC, "WP" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, "ZR" NUMERIC, PRIMARY KEY("player","year","stint","POS"), foreign key("year","player","stint") references "playerstints"("year","player","stint") ); insert into fielding select distinct * from "transformed"."fielding"; CREATE TABLE IF NOT EXISTS "pitching" ( "player" TEXT, "year" NUMERIC, "stint" NUMERIC, "W" NUMERIC, "L" NUMERIC, "G" NUMERIC, "GS" NUMERIC, "CG" NUMERIC, "SHO" NUMERIC, "SV" NUMERIC, "IPouts" NUMERIC, "H" NUMERIC, "ER" NUMERIC, "HR" NUMERIC, "BB" NUMERIC, "SO" NUMERIC, "BAOpp" NUMERIC, "ERA" NUMERIC, "IBB" NUMERIC, "WP" NUMERIC, "HBP" NUMERIC, "BK" NUMERIC, "BFP" NUMERIC, "GF" NUMERIC, "R" NUMERIC, "SH" NUMERIC, "SF" NUMERIC, "GIDP" NUMERIC, PRIMARY KEY("player","year","stint"), foreign key("year","player","stint") references "playerstints"("year","player","stint") ); insert into pitching select distinct * from "transformed"."pitching"; CREATE TABLE IF NOT EXISTS "appearances" ( "year" NUMERIC, "team" TEXT, "player" TEXT, "G_all" NUMERIC, "GS" NUMERIC, "G_batting" NUMERIC, "G_defense" NUMERIC, "G_p" NUMERIC, "G_c" NUMERIC, "G_1b" NUMERIC, "G_2b" NUMERIC, "G_3b" NUMERIC, "G_ss" NUMERIC, "G_lf" NUMERIC, "G_cf" NUMERIC, "G_rf" NUMERIC, "G_of" NUMERIC, "G_dh" NUMERIC, "G_ph" NUMERIC, "G_pr" NUMERIC, PRIMARY KEY("year","team","player"), foreign key("player") references "people"("ID"), foreign key("year","team") references "teamseasons"("year","team") ); insert into appearances select distinct * from "transformed"."appearances"; CREATE TABLE IF NOT EXISTS "homegames" ( "year" NUMERIC, "team" TEXT, "park" TEXT, "first" TEXT, "last" TEXT, "games" NUMERIC, "openings" NUMERIC, "attendance" NUMERIC, PRIMARY KEY("year","team","park"), foreign key("park") references "parks"("ID"), foreign key("year","team") references "teamseasons"("year","team") ); insert into homegames select distinct * from "transformed"."homegames"; CREATE TABLE IF NOT EXISTS "seriespost" ( "year" NUMERIC, "round" NUMERIC, "winner" TEXT, "loser" TEXT, "wins" NUMERIC, "losses" NUMERIC, "ties" NUMERIC, PRIMARY KEY("year","round"), foreign key("year") references "seasons"("year"), foreign key("winner") references "teams"("ID"), foreign key("loser") references "teams"("ID") ); insert into seriespost select distinct * from "transformed"."seriespost"; CREATE TABLE IF NOT EXISTS "fieldingofsplit" ( "player" TEXT, "year" NUMERIC, "stint" NUMERIC, "POS" TEXT, "G" NUMERIC, "GS" NUMERIC, "InnOuts" NUMERIC, "PO" NUMERIC, "A" NUMERIC, "E" NUMERIC, "DP" NUMERIC, "PB" NUMERIC, "WP" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, "ZR" NUMERIC, PRIMARY KEY("player","year","stint","POS"), foreign key("year","player","stint") references "playerstints"("year","player","stint") ); insert into fieldingofsplit select distinct * from "transformed"."fieldingofsplit"; create table if not exists teams ( "ID" text, "franchise" text, primary key("ID"), foreign key("franchise") references "franchises"("ID") ); insert into teams select distinct * from "transformed"."teams"; create table if not exists "leagues" ( "ID" text, "name" text, primary key("ID") ); insert into leagues select distinct * from "transformed"."leagues"; CREATE TABLE IF NOT EXISTS "managers" ( "ID" TEXT, "year" NUMERIC, "team" TEXT, "inseason" NUMERIC, "G" NUMERIC, "W" NUMERIC, "L" NUMERIC, "plyrMgr" TEXT, PRIMARY KEY("ID","year","team","inseason"), foreign key("ID") references "people"("ID"), foreign key("year","team") references "teamseasons"("year","team") ); insert into managers select distinct * from "transformed"."managers"; CREATE TABLE IF NOT EXISTS "awardsmanagers" ( "manager" TEXT, "award" TEXT, "year" NUMERIC, "league" TEXT, "notes" TEXT, PRIMARY KEY("manager","award","year","league"), foreign key("manager") references "people"("ID"), foreign key("award","year","league") references "yearlyawards"("award","year","league") ); insert into awardsmanagers select distinct * from "transformed"."awardsmanagers"; CREATE TABLE IF NOT EXISTS "battingpost" ( "year" NUMERIC, "round" NUMERIC, "player" TEXT, "G" NUMERIC, "AB" NUMERIC, "R" NUMERIC, "H" NUMERIC, "2B" NUMERIC, "3B" NUMERIC, "HR" NUMERIC, "RBI" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, "BB" NUMERIC, "SO" NUMERIC, "IBB" NUMERIC, "HBP" NUMERIC, "SH" NUMERIC, "SF" NUMERIC, "GIDP" NUMERIC, PRIMARY KEY("year","player","round"), foreign key("player") references "people"("ID"), foreign key("year","round") references "seriespost"("year","round") ); insert into battingpost select distinct * from "transformed"."battingpost"; CREATE TABLE IF NOT EXISTS "fieldingpost" ( "player" TEXT, "year" NUMERIC, "round" NUMERIC, "POS" TEXT, "G" NUMERIC, "GS" NUMERIC, "InnOuts" NUMERIC, "PO" NUMERIC, "A" NUMERIC, "E" NUMERIC, "DP" NUMERIC, "TP" NUMERIC, "PB" NUMERIC, "SB" NUMERIC, "CS" NUMERIC, PRIMARY KEY("player","year","round","POS"), foreign key("player") references "people"("ID"), foreign key("year","round") references "seriespost"("year","round") ); insert into fieldingpost select distinct * from "transformed"."fieldingpost"; CREATE TABLE IF NOT EXISTS "pitchingpost" ( "player" TEXT, "year" NUMERIC, "round" NUMERIC, "W" NUMERIC, "L" NUMERIC, "G" NUMERIC, "GS" NUMERIC, "CG" NUMERIC, "SHO" NUMERIC, "SV" NUMERIC, "IPouts" NUMERIC, "H" NUMERIC, "ER" NUMERIC, "HR" NUMERIC, "BB" NUMERIC, "SO" NUMERIC, "BAOpp" NUMERIC, "ERA" NUMERIC, "IBB" NUMERIC, "WP" NUMERIC, "HBP" NUMERIC, "BK" NUMERIC, "BFP" NUMERIC, "GF" NUMERIC, "R" NUMERIC, "SH" NUMERIC, "SF" NUMERIC, "GIDP" NUMERIC, PRIMARY KEY("player","year","round"), foreign key("player") references "people"("ID"), foreign key("year","round") references "seriespost"("year","round") ); insert into pitchingpost select distinct * from "transformed"."pitchingpost"; create table if not exists appearancespost ( "year" numeric, "player" text, "team" text, primary key("year","player"), foreign key("player") references "people"("ID"), foreign key("year","team") references "teamseasons"("year","team") ); insert into appearancespost select distinct * from "transformed"."appearancespost"; CREATE TABLE IF NOT EXISTS "fieldingof" ( "player" TEXT, "year" NUMERIC, "stint" NUMERIC, "Glf" NUMERIC, "Gcf" NUMERIC, "Grf" NUMERIC, PRIMARY KEY("player","year","stint"), foreign key("year","player","stint") references "playerstints"("year","player","stint") ); insert into fieldingof select distinct * from "transformed"."fieldingof"; CREATE TABLE IF NOT EXISTS "awardssharemanagers" ( "award" TEXT, "year" NUMERIC, "league" TEXT, "manager" TEXT, "pointsWon" NUMERIC, "pointsMax" NUMERIC, "votesFirst" NUMERIC, PRIMARY KEY("manager","award","year","league"), foreign key("manager") references "people"("ID"), foreign key("award","year","league") references "yearlyawards"("award","year","league") ); insert into awardssharemanagers select distinct * from "transformed"."awardssharemanagers"; CREATE TABLE IF NOT EXISTS "awardsshareplayers" ( "award" TEXT, "year" NUMERIC, "league" TEXT, "player" TEXT, "pointsWon" NUMERIC, "pointsMax" NUMERIC, "votesFirst" NUMERIC, PRIMARY KEY("award","year","player","league"), foreign key("player") references "people"("ID"), foreign key("award","year","league") references "yearlyawards"("award","year","league") ); insert into awardsshareplayers select distinct * from "transformed"."awardsshareplayers"; create table if not exists "yearlyawards" ( "year" numeric, "award" text, "league" text, primary key("year","award","league"), foreign key("year") references "seasons"("year"), foreign key("award") references "awards"("ID") ); insert into yearlyawards select distinct * from "transformed"."yearlyawards"; CREATE TABLE IF NOT EXISTS "halloffame" ( "player" TEXT, "year" NUMERIC, "votedBy" TEXT, "votes" NUMERIC, "inducted" TEXT, "category" TEXT, PRIMARY KEY("player","year","votedBy") foreign key("player") references "people"("ID"), foreign key("year","votedBy") references "halloffamereqs"("year","votedBy") ); insert into halloffame select distinct * from "transformed".halloffame; create table if not exists "halloffamereqs" ( "year" numeric, "votedBy" text, "ballots" numeric, "needed" numeric, "needed_note" text, primary key("year","votedBy"), foreign key("year") references "seasons"("year") ); insert into halloffamereqs select distinct * from "transformed".halloffamereqs; CREATE TABLE IF NOT EXISTS "awardsplayers" ( "player" TEXT, "award" TEXT, "year" NUMERIC, "league" TEXT, "notes" TEXT, PRIMARY KEY("award","year","league","notes","player"), foreign key("player") references "people"("ID"), foreign key("award","year","league") references "yearlyawards"("award","year","league") ); insert into awardsplayers select distinct * from "transformed".awardsplayers; CREATE TABLE IF NOT EXISTS "teamseasonshalf" ( "year" NUMERIC, "team" TEXT, "Half" NUMERIC, "DivWin" TEXT, "Rank" NUMERIC, "G" NUMERIC, "W" NUMERIC, "L" NUMERIC, PRIMARY KEY("year","team","Half"), foreign key("year","team") references "teamseasons"("year","team") ); insert into teamseasonshalf select distinct * from "transformed".teamseasonshalf; CREATE TABLE IF NOT EXISTS "managershalf" ( "ID" TEXT, "year" NUMERIC, "team" TEXT, "inseason" NUMERIC, "half" NUMERIC, "G" NUMERIC, "W" NUMERIC, "L" NUMERIC, PRIMARY KEY("ID","year","team","inseason","half"), foreign key("ID","year","team","inseason") references "managers"("ID","year","team","inseason") ); insert into managershalf select distinct * from "transformed".managershalf; CREATE TABLE "allstarstartingpos" ( "player" NUMERIC, "year" NUMERIC, "gameNum" NUMERIC, "startingPos" NUMERIC, primary key("player","year","gameNum","startingPos"), foreign key("player","year","gameNum") references "allstars"("player","year","gameNum") ); insert into allstarstartingpos select distinct * from "transformed".allstarstartingpos; create table if not exists allstargames ( "year" numeric, "gameNum" numeric, "game" text, primary key("year","gameNum"), foreign key("year") references "seasons"("year") ); insert into allstargames select distinct * from "transformed".allstargames; create table if not exists "allstars" ( "player" text, "year" text, "gameNum" text, "team" text, "GP" numeric, primary key("player","year","gameNum"), foreign key("year","gameNum") references "allstargames"("year","gameNum"), foreign key("player","year","team") references "appearances"("player","year","team") ); insert into allstars select distinct * from "transformed".allstars; create table if not exists "playerstints" ( "player" text, "year" numeric, "stint" numeric, "team" text, primary key("player","year","stint"), foreign key("player","year","team") references "appearances"("player","year","team") ); insert into playerstints select distinct * from "transformed".playerstints; COMMIT;