Краткие теоретические сведения. Запросы обычно рассматриваются как часть языка DML

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

Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так, чтобы выполнить высоко сложные оценки и обработки данных. Эта команда называется — SELECT (ВЫБОР).

Базовый синтаксис оператора SELECT:

SELECT DISTINCT|ALL<список столбцов>

FROM <список источников>

WHERE <условия отбора строк>

ORDER BY <список столбцов> ASC|DESC

GROUP BY <список столбцов>

HAVING <условия отбора групп>

ORDER BY <список столбцов> ASC|DESC

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

- COUNT производит номера строк или не NULL значения полей, которые выбрал запрос;

- SUM производит арифметическую сумму всех выбранных значений данного поля;

- AVG производит усреднение всех выбранных значений данного поля;

- MAX производит наибольшее из всех выбранных значений данного поля;

- MIN производит наименьшее из всех выбранных значений данного поля.

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

Предложение HAVING определяет критерии, используемые чтобы удалять определенные группы из вывода, точно также как предложение WHERE делает это для индивидуальных строк.

Команду ORDER BY позволять упорядочивать вывод запроса. Эта команда упорядочивает вывод запроса согласно значениям в том или ином количестве выбранных столбцов. Многочисленные столбцы упорядочиваются один внутри другого, также как с GROUP BY, и вы можете определять возрастание (ASC) или убывание (DESC) для каждого столбца. По умолчанию установлено — возрастание. Если имеются пустые значения (NULL) в поле, которое используется для упорядочивания вывода, они могут или следовать, или предшествовать каждому другому значению в поле.

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

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

С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно, внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса, определяющего, верно оно или нет. Чтобы оценить внешний (основной) запрос, SQL сначала должен оценить внутренний запрос (или подзапрос) внутри предложения WHERE.

 

Ход работы

1 Создать запросы для вывода информации о каждом объекте-сущности базы данных.

В запросах на основе нескольких таблиц использовать явное объединение с применением оператора JOIN или неявного объединения путем сравнения двух полей, например:

Клиент.клиент# = Клиент_описание.клиент#.

2 При проектировании запросов предусмотреть сортировку ORDER BY … DESK|ASK, группировку GROUP BY … HAVING

3 Агрегирующие функции применить при наличии группировки (COUNT, MAX, MIN, SUM, AVG и т.д.).

4 Вычисляемые поля применить для расчета таких значений как, например, «стоимость».

5 В качестве условий после ключевого слова WHERE использовать простые и сложные выражения, а также подзапросы.

6 Оформить подробный отчет и сделать вывод по выполненной работе.

 

Контрольные вопросы

1 Виды запросов, проектируемых при помощи Transact-SQL.

2 Виды условий, которые можно указать после ключевого слова WHERE.

3 Способы сортировки данных.

4 Группировка. Назначение и применение.

5 Агрегирующие функции, использование.

6 Наложение условий на группы при группировке по столбцам.

7 Отличие явного объединения нескольких таблиц от неявного.

8 Можно ли использовать агрегирующие функции без оператора GROUP BY? Почему?

9 Как построить вычисляемое поле?

10 Виды источников данных, которые можно указать после ключевого слова FROM в запросах.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: