-- Создание таблицы клиентов с проверкой данных
CREATE TABLE Клиенты (
КодКлиента INTEGER GENERATED ALWAYS AS IDENTITY
PRIMARY KEY,
ФИО VARCHAR(100) NOT NULL
CHECK (LENGTH(TRIM(ФИО)) > 0),
Адрес VARCHAR(200),
Телефон VARCHAR(20) NOT NULL
CHECK (Телефон ~ '^[0-9()+ -]*$'),
ДатаРегистрации DATE NOT NULL
DEFAULT CURRENT_DATE,
Статус VARCHAR(20) NOT NULL
CHECK (Статус IN ('постоянный', 'новый'))
DEFAULT 'новый',
Email VARCHAR(100)
CHECK (Email IS NULL OR Email LIKE '%@%.%'),
-- Уникальные ограничения
CONSTRAINT UQ_Клиенты_Телефон UNIQUE (Телефон),
CONSTRAINT UQ_Клиенты_Email UNIQUE (Email)
);
-- Индексы для таблицы Клиенты
CREATE INDEX IDX_Клиенты_ФИО ON Клиенты (ФИО);
CREATE INDEX IDX_Клиенты_Статус ON Клиенты (Статус);
CREATE INDEX IDX_Клиенты_ДатаРег ON Клиенты (ДатаРегистрации);