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


psql -d demo --U postgres



Pdf көрінісі
бет20/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   16   17   18   19   20   21   22   23   ...   243
Байланысты:
Язык SQL. Базовый курс

psql -d demo --U postgres
Для создания таблиц в языке SQL служит команда CREATE TABLE. Ее полный синтак-
сис представлен в документации на PostgreSQL, а упрощенный синтаксис таков:
22


CREATE TABLE "имя_таблицы"
( имя_поля тип_данных [ограничения_целостности],
имя_поля тип_данных [ограничения_целостности],
...
имя_поля тип_данных [ограничения_целостности],
[ограничение_целостности],
[первичный_ключ],
[внешний_ключ]
);
В квадратных скобках показаны необязательные элементы команды. После команды
нужно поставить символ «;».
Для получения в среде утилиты psql полной информации о команде CREATE TABLE
сделайте так:
\h CREATE TABLE
Обратите внимание на отсутствие символа «;» в конце строки.
Наименование SQL-команды можно вводить и в нижнем регистре, т. е. строчными
буквами:
\h create table
В качестве первой таблицы, которую мы создадим, выберем «Самолеты». Таблица
имеет следующую структуру (т. е. набор атрибутов и их типы данных):
Описание атрибута
Имя атрибута
Тип данных
Тип PostgreSQL
Ограничения
Код самолета, IATA
aircraft_code
Символьный
char(3)
NOT NULL
Модель самолета
model
Символьный
text
NOT NULL
Максимальная даль-
ность полета, км
range
Числовой
integer
NOT NULL
range > 0
Типы char и text являются символьными типами данных и позволяют вводить любые
символы, в том числе буквы и цифры. Для атрибута «Код самолета, IATA» мы выбрали
тип char(3), поскольку эти коды состоят из трех символов: букв и цифр. Число 3 в
описании типа данных char означает максимальное количество символов, которые
можно ввести в это поле.
Наименования конкретных моделей самолетов могут содержать различные количе-
ства разных символов, поэтому для атрибута «Модель самолета» мы выбрали тип дан-
ных text, который не требует указания максимальной длины сохраняемого значения.
Вообще, число символов, которые можно сохранить в поле типа text, практически не
ограничено.
Для атрибута «Максимальная дальность полета» мы выбрали целый числовой тип.
Значения всех атрибутов каждой строки данной таблицы должны быть определенны-
ми, поэтому на них накладывается ограничение NOT NULL. В принципе в таблицах
базы данных могут содержаться неопределенные значения некоторых атрибутов. Го-
воря другими словами, их значения могут отсутствовать. В таких случаях в этих полях
содержится специальное значение NULL. Но в таблице «Самолеты» не допускается
отсутствие значений атрибутов, отсюда и возникает ограничение NOT NULL. К тому
же атрибут «Максимальная дальность полета» не должен принимать отрицательных
23


значений и нулевого значения, поэтому приходится добавить еще одно ограничение:
range > 0.
В качестве первичного ключа выбран атрибут «Код самолета, IATA». Таким образом,
первичный ключ будет, как говорят,
естественным
. Это означает, что и в реальной
предметной области существует такое понятие, как код самолета, и это понятие ис-
пользуется на практике. В отличие от естественных ключей иногда используются и
так называемые


Достарыңызбен бөлісу:
1   ...   16   17   18   19   20   21   22   23   ...   243




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

    Басты бет