Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Использование в запросе нескольких источников записей




Как видно из приведенной в конце предыдущего раздела синтаксической формы оператора SELECT, в предложении FROM допускается указание нескольких таблиц. Простое перечисление таблиц через запятую практически не используется, поскольку оно соответствует реляционной операции, которая называется декартовым произведением. То есть в результирующем наборе каждая строка из одной таблицы будет сочетаться с каждой строкой из другой.

Например, для таблиц:

A
a b
   
   

 

 

B
c d
   
   

 

Результат запроса

1. SELECT * 2. FROM A, B;

будет выглядеть следующим образом:

a b c d
       
       
       
       

Поэтому перечисление таблиц, как правило, используется совместно с условием соединения строк из разных таблиц, указываемым в предложении WHERE. Для приведенных выше таблиц таким условием может быть совпадение значений, скажем, в столбцах a и c:

1. SELECT *

2. FROM A, B

3. WHERE a = c;

Теперь результатом выполнения этого запроса будет следующая таблица:

a b c d
       

 

то есть соединяются только те строки таблиц, у которых в указанных столбцах находятся равные значения (эквисоединение). Естественно, могут быть использованы любые условия, хотя эквисоединение используется чаще всего, поскольку эта операция воссоздает некую исходную сущность предметной области, декомпозированную на две других в результате процедуры нормализации в процессе построения логической модели.

Если разные таблицы имеют столбцы с одинаковыми именами, то для однозначности требуется использовать точечную нотацию, которая называется уточнением имени столбца:

<имя таблицы>.<имя столбца>

В тех случаях, когда это не вызывает неоднозначности, использование данной нотации не является обязательным.

Пример1: Найти номер модели и производителя ПК, имеющих цену менее $600:

1. SELECT DISTINCT PC.model, maker

2. FROM PC, Product

3. WHERE PC.model = Product.model AND

4. price < 600;

В результате каждая модель одного и того же производителя выводится только один раз:

Иногда в предложении FROM требуется указать одну и ту же таблицу несколько раз. В этом случае обязательным является переименование.

Пример2: Вывести пары моделей, имеющих одинаковые цены:

1. SELECT DISTINCT A.model AS model_1, B.model AS model_2

2. FROM PC AS A, PC B

3. WHERE A.price = B.price AND

4. A.model < B.model;

Переименование также является обязательным, если в предложении FROM используется подзапрос, так как, в противном случае, у нас нет возможности уточнения имени столбца из подзапроса. Так, первый пример можно переписать следующим образом:

1. SELECT DISTINCT PC.model, maker

2. FROM PC, (SELECT maker, model

3. FROM Product

4.) AS Prod

5. WHERE PC.model = Prod.model AND

6. price < 600;

Обратите внимание, что в этом случае в других предложениях оператора SELECT уже нельзя использовать квалификатор Product, поскольку таблица Product уже не используется. Вместо него используется псевдоним Prod. Кроме того, ссылаться извне теперь можно только на те столбцы таблицы Product, которые перечислены в подзапросе.

За псевдонимом производного табличного выражения может в скобках стоять список имен столбцов, которые будут использоваться вместо имен табличного выражения. Порядок имен должен, естественно, соответствовать списку столбцов табличного выражения (в нашем случае - списку в предложении SELECT). Это способ позволяет избежать неоднозначности имен и, как следствие, необходимости их уточнения. Вот как может выглядеть предыдущий пример:

1. SELECT DISTINCT model, maker

2. FROM PC, (SELECT maker, model

3. FROM Product

4.) AS Prod(maker, model_1)

5. WHERE model = model_1 AND

6. price < 600;

Поделиться:





Читайте также:

II. Использование галереи фильтров
VIII. ТЕХНИКА ИЗМЕНЕНИЯ ЛИЧНОЙ ИСТОРИИ С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬ НОЙ СИСТЕМЫ.
А) С использованием кривых Безье
А. Проверка подлинности процессов при распределении ключей с использованием ЦРК
Адаптация фольклорных источников для детского коллектива
Алгебраическая сумма падений напряжения на потребителях замкнутого контура равна алгебраической сумме ЭДС источников, содержащихся в нем.
Анализ бухгалтерского баланса. Разработка аналитического баланса. Вертикальный горизонтальный анализ. Анализ активов организации и источников их формирования.
Анализ источников формирования капитала
Анализ источников формирования капитала, его размещения, оценка имущественного состояния потребительского общества
Анализ продолжительности производственно-коммерческого цикла и источников его финансирования






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...