DROP TABLE IF EXISTS titanic CASCADE;
CREATE TABLE titanic (
passenger_id INTEGER PRIMARY KEY,
survived INTEGER CHECK (survived IN (0, 1)),
pclass INTEGER CHECK (pclass IN (1, 2, 3)),
name VARCHAR(100) NOT NULL,
sex VARCHAR(10) CHECK (sex IN ('male', 'female')),
age DECIMAL(5,2),
sibsp INTEGER,
parch INTEGER,
ticket VARCHAR(20),
fare DECIMAL(10,4),
cabin VARCHAR(20),
embarked CHAR(1) CHECK (embarked IN ('C', 'Q', 'S'))
);
CREATE INDEX idx_titanic_survived ON titanic(survived);
CREATE INDEX idx_titanic_pclass ON titanic(pclass);
CREATE INDEX idx_titanic_sex ON titanic(sex);
CREATE INDEX idx_titanic_age ON titanic(age);