Добавил:
@wequalwo Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SQL / Ivanov_S_0392_sql_3

.docx
Скачиваний:
0
Добавлен:
08.09.2024
Размер:
114.6 Кб
Скачать

-- убрать ограничение уникальности для поля «Название предприятия»;

ALTER TABLE company DROP CONSTRAINT cy_name_not_null;

-- изменить значение по умолчанию для поля «Город»

ALTER TABLE ONLY company ALTER COLUMN cy_city SET DEFAULT 'Marseille';

-- увеличить количество символов для ввода в поле «Город»

ALTER TABLE company ALTER COLUMN cy_city SET DATA TYPE varchar(50);

-- добавить обязательное поле «Страна» (последовательность действий: создать поле, ввести значения, сделать поле обязательным)

ALTER TABLE company ADD COLUMN cy_country text;

UPDATE company

SET cy_country = 'France';

ALTER TABLE company ADD CONSTRAINT cy_name_not_null CHECK (cy_name IS NOT NULL);

-- расширить диапазон значений поля «Объем»

ALTER TABLE commande DROP CONSTRAINT commande_ce_volume_check;

ALTER TABLE commande ADD CONSTRAINT commande_ce_volume_check CHECK(ce_volume < 10000 AND ce_volume > 0);

--- сделать необязательным поле «Стоимость»

ALTER TABLE commande ALTER COLUMN ce_price DROP NOT NULL;

-- добавить необязательное поле «Статус заказа» с возможными значениями: ‘Принят’, ‘В работе’, ‘Выполнен’)

ALTER TABLE commande ADD COLUMN ce_status text CHECK (ce_status = NULL OR ce_status = 'accepted' OR ce_status = 'in progress' OR ce_status = 'copmleted');

-- ввести значение статуса для каждого заказа

UPDATE commande

SET ce_status = 'accepted'

WHERE ce_volume > 100;

UPDATE commande

SET ce_status = 'in progress'

WHERE ce_volume <= 100;

SELECT * FROM commande;

-- изменить структуру таблицы «Заказ», выделив справочную таблицу «Статус» (код статуса, название статуса)

CREATE TABLE Reference

(

re_id int4 PRIMARY KEY,

status text

);

INSERT INTO Reference(re_id, status)

VALUES (0, 'accepted');

INSERT INTO Reference(re_id, status)

VALUES (1, 'in progress');

INSERT INTO Reference(re_id, status)

VALUES (2, 'copmleted');

INSERT INTO Reference(re_id, status)

VALUES (3, 'undefined');

ALTER TABLE commande ADD COLUMN re_id int4;

UPDATE commande

SET re_id = '0'

WHERE ce_status = 'accepted'

UPDATE commande

SET re_id = '1'

WHERE ce_status = 'in progress'

UPDATE commande

SET re_id = '2'

WHERE ce_status = 'copmleted'

UPDATE commande

SET re_id = '3'

WHERE ce_status = 'undefined'

ALTER TABLE commande

ADD FOREIGN KEY (re_id)

REFERENCES reference (re_id);

ALTER TABLE commande DROP COLUMN ce_status;

SELECT * FROM company;

SELECT * FROM commande;

SELECT * FROM reference;

SELECT * FROM execution;

Соседние файлы в папке SQL