Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет29/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   25   26   27   28   29   30   31   32   ...   243
Байланысты:
Язык SQL. Базовый курс

CREATE TABLE seats
( aircraft_code
char( 3 )
NOT NULL,
seat_no
varchar( 4 ) NOT NULL,
31


fare_conditions varchar( 10 ) NOT NULL,
CHECK ( fare_conditions IN ( 'Economy', 'Comfort', 'Business' ) ),
PRIMARY KEY ( aircraft_code, seat_no ),
FOREIGN KEY ( aircraft_code )
REFERENCES aircrafts (aircraft_code )
ON DELETE CASCADE
);
Для того чтобы посмотреть, какая получилась таблица, введите команду
\d seats
Таблица "public.seats"
Колонка
| Тип
| Модификаторы
-----------------+-----------------------+--------------
aircraft_code
| character(3)
| NOT NULL
seat_no
| character varying(4) | NOT NULL
fare_conditions | character varying(10) | NOT NULL
Индексы:
"seats_pkey" PRIMARY KEY, btree (aircraft_code, seat_no)
Ограничения-проверки:
"seats_fare_conditions_check" CHECK (fare_conditions::text = ANY
(ARRAY['Economy'::character varying, 'Comfort'::character varying,
'Business'::character varying]::text[]))
,

,

Ограничения внешнего ключа:
"seats_aircraft_code_fkey" FOREIGN KEY (aircraft_code)
REFERENCES aircrafts(aircraft_code) ON DELETE CASCADE
Вы видите, что тип данных char имеет также и полное название — character, а тип
данных varchar — character varying. Первичный ключ здесь составной — (aircraft_code,
seat_no). Ограничение CHECK, накладываемое на значения атрибута fare_conditions,
представлено в более сложной форме, чем это было сделано при создании таблицы.
Двойные символы «::» означают операцию приведения типа. Это аналогично такой
же операции в других языках программирования. Ключевое слово ARRAY говорит о
том, что список допустимых значений представлен в виде массива. Массивы при-
сутствуют в PostgreSQL, и их использование в ряде ситуаций позволяет, например,
упростить схему базы данных. Более подробно о них мы будем говорить в главе 4.
Принципиально новым по сравнению с таблицей «Самолеты» является наличие огра-
ничения внешнего ключа. Это ограничение имеет имя seats_aircraft_code_fkey, сге-
нерированное самой СУБД, поскольку мы не предложили в команде CREATE TABLE
никакого своего имени для этого ограничения, хотя, в принципе, имели право это
сделать, если бы захотели.
Для просмотра списка всех таблиц, имеющихся в вашей базе данных, выполните ко-
манду
\d
Список отношений
Схема |
Имя
|
Тип
| Владелец
--------+-----------+---------+----------
public | aircrafts | таблица | postgres
public | seats
| таблица | postgres
(2 строки)
32


В первой колонке выведенной таблицы указана так называемая схема базы данных —
public. Мы уже говорили, что схема — это обособленный до некоторой степени раздел
базы данных. По умолчанию все объекты создаются в схеме public. В третьей колонке
указан тип — «таблица». Кроме таблиц могут быть еще и представления. В последней
колонке указано имя пользователя, являющегося владельцем таблицы. Как правило,
это пользователь, создавший таблицу.
Давайте сразу же проделаем эксперимент, позволяющий показать работу внешнего
ключа. Выполните следующую команду для ввода данных в таблицу «Места»:


Достарыңызбен бөлісу:
1   ...   25   26   27   28   29   30   31   32   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет