Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Подзапити SELECT





Підзапити можуть використовуватися для наступних цілей:
• Для визначення множини рядків, що вставляються в цільову таблицю виразами INSERT або CREATE TABLE
• Для визначення одного або більше значень, призначуваних існуючим рядкам в затвердженні UPDATE
• Для забезпечення необхідних умов у виразах WHERE, HAVING тверджень SELECT, UPDATE, і DELETE
Щоб визначити таблицю, оброблювану запитом, підзапит розташовується після оператора FROM замість імені таблиці. Можна використовувати підзапити замість таблиць таким же чином і в твердженнях INSERT, UDPATE і DELETE. Підзапити, використовувані таким чином, можуть застосовувати змінні кореляції, але тільки якщо ці змінні визначені всередині самого запиту і не містять зовнішніх посилань.
1. Наприклад, щоб визначити, хто працює у відділі Тейлора, можна спочатку використовувати підзапит, щоб визначити, в якому відділі цей Тейлор працює:
SELECT ename, deptno FROM emp WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'Taylor');
Підзапит виконується один раз для всього батьківського твердження.
Підзапит може і сам містити підзапит, рівень вкладеності не обмежується.
2. підзапити можна використовувати для створення копій таблиць. Наприклад, створимо копію таблиці DEPT з ім'ям NEWDEPT:
CREATE TABLE newdept (deptno, dname, loc) AS SELECT deptno, dname, loc FROM dept;

Використання імен кореляції (аліасів, псевдонімів)

Іноді доводиться виконувати запити, у яких таблиця з'єднується сама із собою, або одна таблиця з'єднується двічі з іншою таблицею. При цьому икористовуються імена кореляції (аліаси, псевдоніми), які дозволяють розрізняти копії та таблиці-оригінали. Імена кореляції вводяться у розділі FROM і йдуть через пробіл після імені таблиці. Імена кореляції повинні використовуватися як префікс перед ім'ям стовпця й відокремлюються від імені стовпця крапкою. Якщо у запиті вказуються ті самі поля з різних екземплярів однієї таблиці, вони повинні бути перейменовані для усунення неоднозначності в іменуваннях колонок результуючої таблиці. Визначення імені кореляції діє тільки під час виконання запиту.

Приклад. Відібрати всі пари постачальників таким чином, щоб перший постачальник у парі мав статус, більший од статусу другого постачальника:

SELECT P1.PNAME AS PNAME1,

P1.PSTATUS AS PSTATUS1,

P2.PNAME AS PNAME2,

P2.PSTATUS AS PSTATUS2

FROM P P1, P P2

WHERE P1.PSTATUS1 > P2.PSTATUS2;

В результаті одержимо наступну таблицю:

PNAME1 PSTATUS1 PNAME2 PSTATUS2

Іванов 4 Петров 1

Іванов 4 Сидоров 2

Сидоров 2 Петров 1

 

Синтаксис з'єднаної таблиці має такий вигляд:

З'єднана таблиця::=

Перехресне з'єднання | Природне з'єднання | З'єднання за допомогою предиката |

З'єднання за допомогою імен стовпців | З'єднання об'єднання

Тип з'єднання::=

INNER | LEFT [ OUTER ] | RIGTH [ OUTER ] | FULL [ OUTER ]

Перехресне з'єднання::=

Таблиця А CROSS JOIN Таблиця В

Природне з'єднання::=

Таблиця А [ NATURAL ] [ Тип з'єднання ] JOIN Таблиця В

З'єднання за допомогою предиката::=

Таблиця А [ Тип з'єднання ] JOIN Таблиця В ON Предикат

З'єднання за допомогою імен стовпців::=

Таблиця А [ Тип з'єднання ] JOIN Таблиця В USING (Ім'я стовпця.,..)

З'єднання об'єднання::=

Таблиця А UNION JOIN Таблиця В

CROSS JOIN - перехресне з'єднання повертає просто декартовий добуток таблиць.

Таке з'єднання в розділі FROM може бути замінено списком таблиць через кому.

NATURAL JOIN - природне з'єднання відбувається по всіх стовпцях таблиць А і В, що мають однакові імена. У результуючу таблицю однакові стовпці вставляються тільки один раз.

JOIN... ON - з'єднання за допомогою предиката з'єднує рядки таблиць А і В за

допомогою зазначеного предиката.

JOIN... USING - з'єднання за допомогою імен стовпців з'єднує відношення подібно природному з'єднанню по тим загальним стовпцям таблиць А і Б, які зазначені в списку USING.

INNER - тип з'єднання "внутрішнє". Внутрішній тип з'єднання використовується за

замовчуванням, коли тип явно не заданий. У таблицях А і В з'єднуються ті рядки, для яких знайден збіг.

LEFT (OUTER) - тип з'єднання "ліве (зовнішнє)". Ліве з'єднання таблиць А і В містить у собі всі рядки з лівої таблиці А і ті рядки із правої таблиці В, для яких виявлений збіг. Для рядків з таблиці А, для яких не знайдено відповідності у таблиці В, у стовпці, що витягають із таблиці В, заносяться значення NULL.

RIGHT (OUTER) - тип з'єднання "праве (зовнішнє)". Праве з'єднання таблиць А і В містить у собі всі рядки із правої таблиці В і ті рядки з лівої таблиці А, для яких виявлений збіг. Для рядків з таблиці В, для яких не знайдено відповідності в таблиці А, у стовпці, що витягають із таблиці А, заносяться значення NULL.

FULL (OUTER) - тип з'єднання "повне (зовнішнє)". Це комбінація лівого й правого з'єднань. У повне з'єднання включаються всі рядки з обох таблиць.

Оператор декартового добутку

Реляційна алгебра: A Times B

Оператор SQL: SELECT A.Поле1, A.Поле2,..., B.Поле1, B.Поле2,...FROM A, B;

або SELECT A.Поле1, A.Поле2,..., B.Поле1, B.Поле2,...FROM A CROSS JOIN B;







Дата добавления: 2015-09-04; просмотров: 484. Нарушение авторских прав; Мы поможем в написании вашей работы!




Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

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

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия