Skip to content

Instantly share code, notes, and snippets.

@kshitij10496
Created December 6, 2021 15:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kshitij10496/8e09f8bcba78783eae9d94886e7638c7 to your computer and use it in GitHub Desktop.
Save kshitij10496/8e09f8bcba78783eae9d94886e7638c7 to your computer and use it in GitHub Desktop.
SQL commands to create DB tables on PostgreSQL
CREATE TABLE circuits(
circuitId INTEGER NOT NULL PRIMARY KEY,
circuitRef VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
location VARCHAR(255) DEFAULT NULL,
country VARCHAR(255) DEFAULT NULL,
lat NUMERIC(8,5) DEFAULT NULL,
lng NUMERIC(10,6) DEFAULT NULL,
alt INTEGER DEFAULT NULL,
url VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE constructor_results (
constructorResultsId INTEGER NOT NULL PRIMARY KEY,
raceId INTEGER NOT NULL DEFAULT 0 REFERENCES races,
constructorId INTEGER NOT NULL DEFAULT 0 REFERENCES constructors,
points FLOAT DEFAULT NULL,
status VARCHAR(255) DEFAULT NULL
);
CREATE TABLE constructor_standings (
constructorStandingsId INTEGER NOT NULl PRIMARY KEY,
raceId INTEGER DEFAULT 0 REFERENCES races,
constructorId INTEGER NOT NULL DEFAULT 0 REFERENCES constructors,
points FLOAT DEFAULT 0,
position INTEGER DEFAULT NULL,
positionText VARCHAR(255) DEFAULT NULL,
wins INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE constructors (
constructorId INTEGER PRIMARY KEY,
constructorRef VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL UNIQUE,
nationality VARCHAR(255) NULL DEFAULT NULL,
url VARCHAR(255) NOT NULL
);
CREATE TABLE driver_standings (
driverStandingsId INTEGER NOT NULL PRIMARY KEY,
raceId INTEGER NOT NULL REFERENCES races,
driverId INTEGER NOT NULL REFERENCES drivers,
points FLOAT NOT NULL DEFAULT 0,
position INTEGER DEFAULT NULL,
positionText VARCHAR(255) DEFAULT NULL,
wins INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE drivers (
driverId INTEGER PRIMARY KEY,
driverRef VARCHAR(255) NOT NULL,
number INTEGER NULL DEFAULT NULL,
code VARCHAR(3) NULL DEFAULT NULL,
forename VARCHAR(255) NOT NULL,
surname VARCHAR(255) NOT NULL,
dob DATE NULL DEFAULT NULL,
nationality VARCHAR(255) NULL DEFAULT NULL,
url VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE lap_times (
raceId INTEGER NOT NULL REFERENCES races,
driverId INTEGER NOT NULL REFERENCES drivers,
lap INTEGER NOT NULL PRIMARY KEY DEFAULT NULL,
position INTEGER NULL DEFAULT NULL,
time VARCHAR(255) NULL DEFAULT NULL,
milliseconds INTEGER NULL DEFAULT NULL
);
CREATE TABLE pit_stops (
raceId INTEGER NOT NULL REFERENCES races,
driverId INTEGER NOT NULL REFERENCES drivers,
stop INTEGER NOT NULL PRIMARY KEY DEFAULT NULL,
lap INTEGER NOT NULL,
time TIME NOT NULL DEFAULT NULL,
duration VARCHAR(255) DEFAULT NULL,
milliseconds INTEGER DEFAULT NULL
);
CREATE TABLE qualifying (
qualifyId INTEGER NOT NULL PRIMARY KEY DEFAULT NULL,
raceId INTEGER NOT NULL DEFAULT 0 REFERENCES races,
driverId INTEGER NOT NULL DEFAULT 0 REFERENCES drivers,
constructorId INTEGER NOT NULL DEFAULT 0 REFERENCES constructors,
number INTEGER NOT NULL DEFAULT 0,
position INTEGER DEFAULT NULL,
q1 VARCHAR(255) DEFAULT NULL,
q2 VARCHAR(255) DEFAULT NULL,
q3 VARCHAR(255) DEFAULT NULL
);
CREATE TABLE races (
raceId INTEGER NOT NULL PRIMARY KEY DEFAULT NULL,
year INTEGER REFERENCES seasons,
round INTEGER NOT NULL DEFAULT 0,
circuitId INTEGER REFERENCES circuits,
name VARCHAR(255) NOT NULL,
date DATE NOT NULL,
time TIME NULL DEFAULT NULL,
url VARCHAR(255) NULL UNIQUE DEFAULT NULL
);
CREATE TABLE results (
resultId INTEGER NOT NULL DEFAULT NULL PRIMARY KEY,
raceId INTEGER NOT NULL DEFAULT 0 REFERENCES races,
driverId INTEGER NOT NULL DEFAULT 0 REFERENCES drivers,
constructorId INTEGER NOT NULL DEFAULT 0 REFERENCES constructors,
number INTEGER NOT NULL DEFAULT NULL,
grid INTEGER NOT NULL DEFAULT 0,
position INTEGER DEFAULT NULL,
positionText VARCHAR(255) NOT NULL,
positionOrder INTEGER NOT NULL DEFAULT 0,
points FLOAT NOT NULL DEFAULT 0,
laps INTEGER NOT NULL DEFAULT 0,
time VARCHAR(255) DEFAULT NULL,
milliseconds INTEGER DEFAULT NULL,
fastestLap INTEGER DEFAULT NULL,
rank INTEGER DEFAULT 0,
fastestLapTime VARCHAR(255) DEFAULT NULL,
fastestLapSpeed VARCHAR(255) DEFAULT NULL,
statusId INTEGER NOT NULL DEFAULT 0 REFERENCES status
);
CREATE TABLE seasons (
year INTEGER NOT NULL PRIMARY KEY DEFAULT 0,
url VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE status (
statusId INTEGER NOT NULL PRIMARY KEY DEFAULT NULL,
status VARCHAR(255) NOT NULL
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment