Files
ITMO/DB/DBLab1/create.sql
T
LeterZP e74e191a92 Add 'DB/DBLab1/' from commit '98b5a9e606eb38ca4d032879a95744cd2ca6daf6'
git-subtree-dir: DB/DBLab1
git-subtree-mainline: 310ab37691
git-subtree-split: 98b5a9e606
2026-03-22 20:48:07 +03:00

10 lines
1.5 KiB
SQL

CREATE TYPE star_colors AS ENUM ('коричневый', 'красный', 'оранжевый', 'жёлтый', 'жёлто-белый', 'белый', 'бело-голубой', 'голубой', 'звезда Вольфа-Райе');
CREATE TYPE star_types AS ENUM ('карлик', 'гигант', 'сверхгигант', 'сверхновая');
CREATE TABLE human (passport_id CHAR(6) PRIMARY KEY, name VARCHAR(50) NOT NULL, surname VARCHAR(50) NOT NULL, last_name VARCHAR(50), birth_date TIMESTAMP NOT NULL);
CREATE TABLE galaxy (galaxy_name VARCHAR(50) PRIMARY KEY, galaxy_size VARCHAR(10) NOT NULL);
CREATE TABLE nebula (nebula_name VARCHAR(50) PRIMARY KEY, galaxy_name VARCHAR(50) REFERENCES galaxy(galaxy_name), nebula_size VARCHAR(10) NOT NULL);
CREATE TABLE star (star_name VARCHAR(50) PRIMARY KEY, nebula_name VARCHAR(50) REFERENCES nebula(nebula_name), star_type star_types NOT NULL DEFAULT 'карлик', star_color star_colors NOT NULL DEFAULT 'красный');
CREATE TABLE planet (planet_name VARCHAR(50) PRIMARY KEY, star_name VARCHAR(50) REFERENCES star(star_name), planet_size REAL NOT NULL, planet_atmosphere BOOL, planet_life BOOL);
CREATE TABLE star_collision (id SERIAL PRIMARY KEY, star_name VARCHAR(50) REFERENCES star(star_name), human CHAR(6) REFERENCES human(passport_id), collision_time TIMESTAMP NOT NULL);
CREATE TABLE frame (frame_id SERIAL PRIMARY KEY, human CHAR(6) REFERENCES human(passport_id), galaxy_name VARCHAR(50) REFERENCES galaxy(galaxy_name), creation_time DATE NOT NULL);