рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Многотабличные запросы на чтение и объединение таблиц

Многотабличные запросы на чтение и объединение таблиц - раздел Программирование, Многотабличные Запросы На Чтение ...

Многотабличные запросы на чтение и объединение таблиц

Декартово произведение Многотабличные запросы Псевдонимы таблиц

Выборка данных из нескольких таблиц

Рисунок 1 Таблицы, связанные отношением «первичный ключ/внешний ключ» Основой многотабличного запроса является соединение таблиц, получающееся в результате формирования пар строк путем…

Декартово произведение

SQL> SELECT d.deptno, dname, e.deptno, ename FROM dept d, emp e; DEPTNO DNAME DEPTNO ENAME --------- -------------- --------- ----------

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

SELECT [ALL | DISTINCT] список_выбора

[WHERE условие_соединения] [ORDER BY {столбец | псевдоним | позиция} [ASC | DESC]; Для корректного построения многотабличного запроса необходимо задать условие соединения таблиц (реляционная операция…

Псевдонимы таблиц

SQL> SELECT d.deptno, d.dname, e.deptno, e.ename FROM dept d, emp e 2 WHERE d.deptno=e.deptno; DEPTNO DNAME DEPTNO ENAME

Чтение всех столбцов

Многотабличный запрос можно использовать для чтения всех столбцов соединяемых таблиц.

SELECT * FROM таблица1, таблица2 WHERE таблица1.столбец= таблица2.столбец

возвращает все столбцы из обеих таблиц

SELECT таблица1.*, таблица2.столбец FROM таблица1, таблица2

WHERE таблица1.столбец= таблица2.столбец

возвращает все столбцы из первой таблицы и заданные столбцы из второй таблицы

SQL> SELECT * FROM dept d, emp e WHERE d.deptno=e.deptno AND d.deptno>=30;

DEPTNO DNAME LOC EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

------- ------- --------- ------ -------- --------- ----- --------- ----- ------ -------

30 SALES CHICAGO 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30

30 SALES CHICAGO 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

30 SALES CHICAGO 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

30 SALES CHICAGO 7900 JAMES CLERK 7698 03-DEC-81 950 30

30 SALES CHICAGO 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30

30 SALES CHICAGO 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30

6 rows selected.

 

SQL> SELECT d.*, e.ename FROM dept d, emp e

2 WHERE d.deptno=e.deptno AND d.deptno>=30;

DEPTNO DNAME LOC ENAME

--------- -------------- ------------- ----------

30 SALES CHICAGO ALLEN

30 SALES CHICAGO BLAKE

30 SALES CHICAGO MARTIN

30 SALES CHICAGO JAMES

30 SALES CHICAGO TURNER

30 SALES CHICAGO WARD

6 rows selected.

Порядок выполнения многотабличного запроса

2. Условие соединения, заданное в предложении WHERE, применяется ко всем строкам декартова произведения таблиц. Строки, для которых условие… 3. Для каждой из оставшихся строк вычисляется каждое значение в списке… 4. Если задано ключевое слово DISTINCT, удаляются повторяющиеся строки.

Эквисоединения

Соединение таблиц на основе точного равенства между значениями двух столбцов называется эквисоединением или соединением по равенству. Обычно эти столбцы являются компонентами первичного и внешнего ключа

SELECT таблица1.столбец, …, таблица2.столбец, …

FROM таблица1, таблица2

WHERE таблица1.столбец = таблица2.столбец

SQL> SELECT d.deptno, d.dname, e.ename

2 FROM dept d, emp e

3 WHERE d.deptno=e.deptno;

DEPTNO DNAME ENAME

--------- -------------- ----------

10 ACCOUNTING CLARK

10 ACCOUNTING KING

10 ACCOUNTING MILLER

20 RESEARCH SMITH

20 RESEARCH ADAMS

20 RESEARCH FORD

20 RESEARCH SCOTT

20 RESEARCH JONES

30 SALES ALLEN

30 SALES BLAKE

30 SALES MARTIN

30 SALES JAMES

30 SALES TURNER

30 SALES WARD

14 rows selected.

Многотабличный запрос возвращает все строки, соответствующие условию соединения. Если Вы хотите сузить результаты запроса, необходимо комбинировать условия соединения с другими поисковыми условиями. Дополнительное условие поиска добавляется с помощью оператора AND.

SQL> SELECT d.deptno, d.dname, e.ename

2 FROM dept d, emp e

3 WHERE d.deptno=e.deptno AND d.deptno<30;

DEPTNO DNAME ENAME

--------- -------------- ----------

10 ACCOUNTING CLARK

10 ACCOUNTING KING

10 ACCOUNTING MILLER

20 RESEARCH SMITH

20 RESEARCH ADAMS

20 RESEARCH FORD

20 RESEARCH SCOTT

20 RESEARCH JONES

8 rows selected.

Не-эквисоединения

Рисунок 2 Несвязанные таблицы SQL> SELECT e.ename, e.job, e.sal, s.grade

Соединение таблицы с самой собой

Рисунок 3 Рекурсивная связь внутри таблицы SQL> SELECT m.ename || ' is manager of ' || e.ename " "

Внешнее соединение

SELECT таблица1.столбец, таблица2.столбец

FROM таблица1, таблица2

WHERE таблица1.столбец = таблица2.столбец(+)

SELECT таблица1.столбец, таблица2.столбец

FROM таблица1, таблица2

WHERE таблица1.столбец(+) = таблица2.столбец

SQL> SELECT * FROM dept;

DEPTNO DNAME LOC

--------- -------------- -------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> SELECT d.deptno, d.dname, e.ename

2 FROM dept d, emp e

3 WHERE d.deptno=e.deptno AND d.deptno>=30;

DEPTNO DNAME ENAME

--------- -------------- ----------

30 SALES ALLEN

30 SALES BLAKE

30 SALES MARTIN

30 SALES JAMES

30 SALES TURNER

30 SALES WARD

6 rows selected.

SQL> SELECT d.deptno, d.dname, e.ename

2 FROM dept d, emp e

3 WHERE d.deptno=e.deptno(+) AND d.deptno>=30;

DEPTNO DNAME ENAME

--------- -------------- ----------

30 SALES ALLEN

30 SALES BLAKE

30 SALES MARTIN

30 SALES JAMES

30 SALES TURNER

30 SALES WARD

40 OPERATIONS

7 rows selected.

Операторы множеств

Иногда возникает необходимость объединить строки, возвращаемые несколькими запросами, в одно результирующее множество, не сравнивая содержимое соответствующих столбцов. SQL поддерживает такую возможность с помощью операторов множеств. Операторы множеств комбинируют строки, возвращаемые двумя запросами в одно результирующее множество. Количество и типы данных колонок в объединяемых с помощью операторов множеств запросах должны совпадать. Длины и имена колонок могут быть разными. Если имена колонок отличаются, то имена колонок результирующего множества будут совпадать с именами колонок первой таблицы.

§ UNION – возвращает все строки, выбранные первым и вторым запросами (реляционная операция «Объединение»)

§ UNION ALL – возвращает все строки, включая повторяющиеся, выбранные первым и вторым запросами

§ INTERSECT – возвращает строки, выбранные и первым, и вторым запросами (реляционная операция «Пересечение»)

§ MINUS - возвращает строки, выбранные первым запросом, из которых исключены строки, выбранные вторым запросом (реляционная операция «Вычитание»)

SELECT [ALL | DISTINCT] список_выбора FROM таблица1 [WHERE условие1]

{UNION | UNION ALL | INTERSECT | MINUS}

SELECT [ALL | DISTINCT] список_выбора FROM таблица2 [WHERE условие2]

[ORDER BY {столбец | псевдоним | позиция} [ASC | DESC]];

SQL> SELECT * FROM emp_bonus;

ENAME JOB BONUS

---------- --------- ---------

SCOTT ANALYST 3000

FORD ANALYST 3000

STONE ADVISER 2000

SQL> SELECT ename, job, sal FROM emp

2 WHERE job<='CLERK';

ENAME JOB SAL

---------- --------- ---------

SMITH CLERK 800

SCOTT ANALYST 3000

ADAMS CLERK 1100

JAMES CLERK 950

FORD ANALYST 3000

MILLER CLERK 1300

6 rows selected.

SQL> SELECT * FROM emp_bonus

2 UNION

3 SELECT ename, job, sal FROM emp WHERE job<='CLERK';

ENAME JOB BONUS

---------- --------- ---------

ADAMS CLERK 1100

FORD ANALYST 3000

JAMES CLERK 950

MILLER CLERK 1300

SCOTT ANALYST 3000

SMITH CLERK 800

STONE ADVISER 2000

7 rows selected.

SQL> SELECT * FROM emp_bonus

2 UNION ALL

3 SELECT ename, job, sal FROM emp WHERE job<='CLERK';

ENAME JOB BONUS

---------- --------- ---------

SCOTT ANALYST 3000

FORD ANALYST 3000

STONE ADVISER 2000

SMITH CLERK 800

SCOTT ANALYST 3000

ADAMS CLERK 1100

JAMES CLERK 950

FORD ANALYST 3000

MILLER CLERK 1300

9 rows selected.

SQL> SELECT * FROM emp_bonus

2 INTERSECT

3 SELECT ename, job, sal FROM emp WHERE job<='CLERK';

ENAME JOB BONUS

---------- --------- ---------

FORD ANALYST 3000

SCOTT ANALYST 3000

SQL> SELECT * FROM emp_bonus

2 MINUS

3 SELECT ename, job, sal FROM emp

4 WHERE job<='CLERK';

ENAME JOB BONUS

---------- --------- ---------

STONE ADVISER 2000

SQL> SELECT * FROM emp_bonus

2 UNION

3 SELECT ename, job, sal FROM emp WHERE job<='CLERK'

4 ORDER BY 1;

ENAME JOB BONUS

---------- --------- ---------

ADAMS CLERK 1100

FORD ANALYST 3000

JAMES CLERK 950

MILLER CLERK 1300

SCOTT ANALYST 3000

SMITH CLERK 800

STONE ADVISER 2000

7 rows selected.

Порядок выполнения запроса с использованием операторов множеств

1. Выполняется каждый оператор SELECT, участвующий в объединении.

§ Формируется декартово произведение таблиц, перечисленных в предложении FROM.

§ Условие соединения, заданное в предложении WHERE, применяется ко всем строкам декартова произведения таблиц. Строки, для которых условие соединения не выполняется, отбрасываются.

§ Для каждой из оставшихся строк вычисляется каждое значение в списке SELECT.

§ Если задано ключевое слово DISTINCT, удаляются повторяющиеся строки.

2. Выполняется объединение, заданное оператором множеств.

3. Если задано предложение ORDER BY, результат запроса сортируется.

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

Результатом соединения, реализованного в предложении FROM, является порожденная таблица, которая и должна обрабатываться остальными операторами… Для всех соединений, исключая перекрестные соединения и соединения… тип_соединения = INNER | {LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER]}

Литература

1. Мартин Грабер. Справочное руководство по SQL: пер. с англ. – М.: Издательство «Лори», 1997.

2. Джеймс Р. Грофф, Пол Н. Вайнберг SQL: полное руководство: пер. с англ. - -К.: Издательская группа BHV, 1998.

– Конец работы –

Используемые теги: Многотабличные, Запросы, Чтение, Объединение, таблиц0.081

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Многотабличные запросы на чтение и объединение таблиц

Что будем делать с полученным материалом:

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

Еще рефераты, курсовые, дипломные работы на эту тему:

Работа с таблицами в MS Word. Форматирование таблиц. Использование формул в таблицах. Стандартные функции
Лабораторная работа... Работа с таблицами в MS Word Форматирование таблиц Использование формул в... Цель работы Привить у студентов навыки создания и форматирования таблиц при оформлении документов Microsoft...

Таким образом, внешне таблица представляет собой пересечение граф и строк, которые формируют остов таблицы
Результаты сводки и группировки материалов статистического наблюдения как правило представляются в виде таблиц Таблица является наиболее... Статистическойназывается таблица которая содержит сводную числовую... Основные элементы статистической таблицы составляющие как бы ее остов основу показаны на схеме...

Правила чтения буквосочетаний. Правила чтения гласных в ударных слогах
Учебное пособие... Содержание Разделы модули а Вводный курс модуля...

Лекция № 3. Таблицы. Типы данных и свойства полей. Создание и заполнение таблиц
Цели... Изучить таблицы и типы данных полей...

Общая структура диаграммы должна предполагать чтение слева направо.
Необходимо помнить что абсолютное дублирование данных отчета в графических изображениях и статистических таблицах является не корректным При... Экспликациявключает словесные пояснения к помещенным на графике... Общая структура диаграммы должна предполагать чтение слева направо...

Организация - это систематизирование, сознательное объединение действий людей, преследующее достижение определенных целей
Цели и задачи менеджмента Сущность управления Основные понятия о менеджменте подходы к определению понятия менеджмент Понятие об объекте и... Прежде чем начать изучать менеджмент необходимо сначала усвоить что такое... Организация это систематизирование сознательное объединение действий людей преследующее достижение определенных...

Таблицы в html
столбец таблицы...

Расчет таблицы значений функции
Алгоритм Сортировка простым включением... Суть алгоритма На каждом шаге начиная с K берем K ый элемент и вставляем... Алгоритм Сортировка обменом метод пузырька Схема алгоритма...

Решение: Составить математическую модель по данной таблице
Решение Составить математическую модель по данной таблице Виды...

Таблица – Распределение минералов в земной коре
Таблица Распределение минералов в земной коре Класс минералов Содержание в земной коре весовых Силикаты Около Из них на... Бетехтин Анатолий Георгиевич геолог минералог академик АН... Из табл видно что силикаты и кварц в земной коре составляют около от ее массы Классы минералов такие как...

0.033
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам