Изучаем sql


CREATE TABLE favorite_food



Pdf көрінісі
бет36/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   32   33   34   35   36   37   38   39   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

CREATE TABLE favorite_food
>
(person_id SMALLINT UNSIGNED,
>
food VARCHAR(20),
>
CONSTRAINT pk_favorite_food PRIMARY KEY (person_id, food),
>
CONSTRAINT fk_person_id FOREIGN KEY (person_id)
>
REFERENCES person (person_id)
>
)
;
Query OK, 0 rows affected (0.10 sec)
Это очень похоже на выражение 
create
table
для таблицы 
person
, за не
сколькими исключениями:

Поскольку у человека может быть несколько любимых блюд (что
и стало причиной создания данной таблицы), одного столбца 
per
son_id
для обеспечения уникальности в таблице недостаточно. По
этому первичный ключ данной таблицы состоит из двух столбцов:
person_id
и 
food
.

Таблица 
favorite_food
содержит другой тип ограничения – 
ограниче
ние внешнего ключа 
(
foreignkey constraint
). Оно ограничивает зна
чения столбца 
person_id
таблицы 
favorite_food
, позволяя ему вклю
чать только те значения, которые есть в таблице 
person
. При таком
ограничении не получится включить в таблицу 
favorite_food
строку,
показывающую, что 
person_id
27
любит пиццу, если в таблице 
person
нет строки со значением 
27
для 
person_id
.
Если при создании таблицы ограничение внешнего ключа не
было указано, его можно добавить позже с помощью оператора
alter table 
(изменить таблицу).
После выполнения выражения 
create
table
по команде 
describe
будет
выведено следующее:


42
Глава 2. Создание и заполнение базы данных
mysql> 


Достарыңызбен бөлісу:
1   ...   32   33   34   35   36   37   38   39   ...   261




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

    Басты бет