Использование полных имен
Назначение псевдонимов
Назначение псевдонимов таблицам
337.50K
Category: databasedatabase

Многотабличные и вложенные запросы

1.

Многотабличные и
вложенные запросы

2.

Перекрестное объединение таблиц
Для осуществления запроса сразу к нескольким
таблицам их имена перечисляются после ключевого
слова from через запятую.
SELECT * FROM tbl1, tbl2;
Двухтабличный запрос, называют также перекрестным
объединением. При таком объединении каждая строка
одной таблицы объединяется с каждой строкой другой
таблицы, создавая тем самым все возможные
комбинации строк обеих таблиц. Результирующая
таблица содержит число столбцов, равное сумме
столбцов в объединяемых таблицах. Число записей в
результирующей таблице определяется произведением
числа записей в таблицах, участвующих в
многотабличном запросе.

3.

Управление столбцами
результирующей таблицы
Точно так же, как и в обычном операторе select, в
многотабличном операторе select можно управлять
числом столбцов в результирующей таблице. Для
этого столбцы, которые должны войти в
результирующую таблицу, перечисляются после
ключевого слова select через запятую.
SELECT name, letter FROM tbl1, tbl2;

4. Использование полных имен

Для того чтобы исключить неоднозначность, т.е.
определить, поле id какой таблицы имеется в виду,
прибегают к полным именам столбцов. Полное имя
включает имена таблицы и столбца, разделенные
точкой.
SELECT tbl1.id, tbl1.name, tbl2.letter FROM tbl1, tbl2;
Для символа "*", указывающего на необходимость
выборки всех столбцов таблицы, также можно
использовать полное имя: tbl1.* и tbl2.*.
SELECT tbl1.*, tbl2.* FROM tbl1, tbl2;
SELECT tbl1.* FROM tbl1, tbl2;

5.

Полные имена можно использовать для обращения не
только в пределах одной базы данных, но и для
объединения таблиц из двух разных баз данных. Для
этого полное имя столбца предваряется именем базы
данных. Если таблицы tbl1 и tbl2 расположены в базах
данных db1 и db2, то к столбцам name и letter можно
обратиться по именам db1.tbl1.name и db2.tbl2.letter
соответственно. При этом названия таблиц следует
также записывать полным именем: db1 .tbl1 и db2.tbl2

6. Назначение псевдонимов

При работе с результирующей таблицей в прикладных
программах часто прибегают к назначению
псевдонимов при помощи оператора as. В листинге
полному имени tbl1.id назначается псевдоним id,
имени tbl1.name – name, а tbl2.letter – letter.
SELECT tbl1.id AS id, tbl1.name AS name, tbl2.letter As
letter FROM tbl1, tbl2 WHERE tbl1.id = tbl2.id;

7. Назначение псевдонимов таблицам

Оператор as может использоваться не только для
назначения псевдонимов столбцам но и для назначения
псевдонимов таблицам. В листинге таблицам tbl1 и tbl2
назначаются псевдонимы t1 и t2 соответственно.
SELECT t1.id, t1.name, t2.letter
FROM tbl1 AS t1, tbl2 AS t2 WHERE t1.id = t2.id;
Замечание
После назначения псевдонимов таблицам, участвующим
в запросе, использовать исходные имена таблиц в
конструкциях where, group by, order by и списке
столбцов после ключевого слова select уже не
допускается.
English     Русский Rules