- •1.Базы данных. Основные понятия и определения.
- •2.Субд.Функции субд.
- •3.Реляционная модель данных.
- •4.Понятие индекса и первичного ключа
- •5.Методы доступа к данным (индексный, последовательный, индексно-последовательный)
- •7.Связывание таблиц. Типы связей.
- •8.Нормализация бд(1nf,2nf,3nf)
- •9.Обеспечение непротиворечивости и целостности данных.
- •11.Файл-серверная архитектура(достоинства и недостатки)
- •12.Двухуровневая архитектура клиент-сервер(достоинства, недостатки)
- •13.Трехуровневая архитектура клиент-сервер
- •14.Основные технологии доступа к данным. Стандартные системы доступа базам данных.
- •15.Понятие технологии доступа к данным. Bde и odbc.
- •16.Основные технологии com, ole db и ado.
- •17.Понятие транзакции и блокировки ресурсов.
- •18.Физическая организация серверов InterBase/FireBird.
- •19.Sql.Категории команд языка sql. Преимущества использования sql.
- •20.Создание б.Д.
- •21.Создание таблиц
- •22.Домены
- •23.Обеспечение достоверности, целостности и непротиворечивости данных.Триггеры генераторы.
- •24.Оператор select. Использование предложения where. Внутреннее соединение таблиц.
- •Простейший вид оператора select(select…from).
- •27.Добавление и удаление данных. Обновление данных.
- •28.Предложение having. Задание сложных условий поиска.
- •29.Оператор select. Задание сложных условий поиска.
- •30.Использование подзапросов.
- •31.Вложение подзапросов.
- •32.Дополнительные возможности использования подзапросов, возвращающих единичные значения.
- •33.Дополнительные возможности использования подзапросов, возвращающих множество значений.
- •Синтаксис и свойства подзапросов
- •Типы подзапросов
- •Подзапросы возражающие один результат
- •34.Внешнее соединение.
- •35.Управление транзакциями на sql-сервере.
- •36.Хранимые процедуры. Алгоритмический язык хп.
- •37.Администрирование бд.
32.Дополнительные возможности использования подзапросов, возвращающих единичные значения.
33.Дополнительные возможности использования подзапросов, возвращающих множество значений.
На языке SQL это решение будет выглядеть в виде двух запросов, при этом один из запросов будет вложен в другой запрос. Запрос находящийся внутри другого запроса называется – подзапросом. Подзапрос возвращает значение , которое будет использоваться в основном запросе. Использования подзапросов , есть использования по очереди двух запросов, сперва получаем данные из подзапроса , а затем используем эти данные в качестве данных основного запроса.
Синтаксис и свойства подзапросов
Синтаксис простого подзапроса выглядит так:
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table)
Здесь в качестве оператора может играть роль такие операторы сравнения как >;>=;<;<=;OR;IN при работе с запросами возвращающие ровно одно значение , а также для решения задач запросами возвращающие множество строк используйте в качестве операторов IN; ANY; ALL.
При этом сперва выполняется подзапрос (внутренней запрос), а результат операции будет передан основному запросу. Подзапрос – есть операция SELECT которая передает свое значения другому основному запросу. При этом возможности подзапроса велики, поэтому использования подзапросов открывает перед вами большие возможности . При этом возможно использовать подзапросы в следующих частях оператора SELECT:
В разделе SELECT
В качестве таблицы в разделе FROM
В разделе WHERE
В условиях HAVING
В разделе ORDER BY
Рассмотрим список правил, которые необходимо соблюдать во время построение подзапроса :
Подзапрос должен быть включен внутрь круглых скобок
Подзапрос необходимо ставить правую часть от оператора сравнения
Необходимости в упорядочения вывода подзапроса нет необходимости за исключением случаев когда необходимо получить запроса типа Топ – n
Используйте однострочные операторы сравнения при работе с запрос возражающий однозначение и наоборот используйте только многострочные операторы сравнения при работе с запросом возвращающим множество строк.
Типы подзапросов
Как уже вы наверное поняли из описания подзапросов существует два типа подзапросов :
Подзапросы возражающие один результат
Подзапросы возражающие множество строк в качестве результата.
Схема подзапроса возражающей одно значение :
Схема подзапроса возражающей множество строк, хотя схематично изображено всего две строки, но на самом деле их может быть от двух и более.
Подзапросы возражающие один результат
Начнем разбирать все свойства, а также примеры подзапросов возражающих один результат. Конечно при работе с подзапросами мы используем операторы сравнения. Для работы с этим типом подзапросов используеться следующие операторы сравнения:
Оператор |
Значение |
|
|
= |
равно |
> |
больше |
< |
меньше |
>= |
больше или равно |
<= |
меньше или равно |
<> |
не равно |
!= |
не равно |
Пример запроса – вывести всех сотрудников, чьи зарплаты больше зарплаты сотрудника SMITH :
SELECT *
FROM emp
WHERE sal > (SELECT sal
FROM emp
WHERE ename = 'SMITH')
Мы рассмотрели простой пример подзапроса , немного усложним логику запроса и получим:
SELECT *
FROM emp
WHERE job = (SELECT job
FROM emp
WHERE ename = 'SMITH')
AND sal > (SELECT MIN (sal)
FROM emp)
Как можно заметить из примера в запросе можно использовать несколько подзапросов . В таком случаи результат будет получен сперва из подзапросов по очереди, а затем все данные полученные из подзапросов будут проставлены в качестве значений в основной запрос.