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


соединение двух таблиц на основе равенства зна-



Pdf көрінісі
бет114/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   110   111   112   113   114   115   116   117   ...   243
Байланысты:
Язык SQL. Базовый курс

соединение двух таблиц на основе равенства зна-
чений атрибутов
.
В этой команде в предложении FROM указаны две таблицы — aircrafts и seats, при-
чем каждая из них получила еще и псевдоним с помощью ключевого слова AS (за-
метим, что оно не является обязательным). Конечно, псевдонимы могут состоять не
только из одной буквы, как в нашем примере. Псевдонимы удобны в тех случаях, ко-
гда в соединяемых таблицах есть одноименные атрибуты. В таких случаях в спис-
ке атрибутов, следующих за ключевым словом SELECT, необходимо указывать либо
имя таблицы, из которой выбирается значение этого атрибута, либо ее псевдоним, но
псевдоним может быть коротким, что удобнее при написании команды. Псевдоним
116


и атрибут соединяются символом «.». Псевдонимы используются и в предложениях
WHERE, GROUP BY, ORDER BY, HAVING, т. е. во всех частях команды SELECT.
Итак, как мы рассуждали? Если бы в качестве исходных сведений мы получили сра-
зу код самолета — «CN1», то запрос свелся бы к выборке из одной таблицы «Места»
(seats). Он был бы таким:
SELECT * FROM seats WHERE aircraft_code = 'CN1';
Но нам дано название модели, а не ее код, поэтому придется подключить к работе и
таблицу «Самолеты» (aircrafts), в которой хранятся наименования моделей. Для того
чтобы решить, удовлетворяет ли строка таблицы seats поставленному условию, нуж-
но узнать, какой модели самолета соответствует эта строка. Как это можно узнать?
В каждой строке таблицы seats есть атрибут aircraft_code, такой же атрибут есть и в
каждой строке таблицы aircrafts. Если с каждой строкой таблицы seats соединить та-
кую строку таблицы aircrafts, в которой значение атрибута aircraft_code такое же, как
и в строке таблицы seats, то сформированная комбинированная строка, составленная
из атрибутов обеих таблиц, будет содержать не только номер места, класс обслужи-
вания и код модели, но — что важно — и наименование модели. Поэтому с помощью
условия WHERE можно будет отобрать только те результирующие строки, в которых
значение атрибута model будет «Cessna 208 Caravan». А какие столбцы оставлять в
списке столбцов предложения SELECT, решать нам. Даже если мы соединяем две таб-
лицы (или более), то совершенно не обязательно в результирующий список столбцов
включать столбцы всех таблиц, перечисленных в предложении FROM. Мы могли бы
оставить только атрибуты таблицы seats:


Достарыңызбен бөлісу:
1   ...   110   111   112   113   114   115   116   117   ...   243




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

    Басты бет