Реляционная модель данных
Манипулирование данными с помощью языка SQL
Download 372 Kb.
|
Conn&Begg
Манипулирование данными с помощью языка SQL. Основным инструментом выборки данных в языке SQL является команда SELECT. Эта команда позволяет получить доступ к данным, которые представлены как совокупность таблиц произвольной сложности.
В упрощенном варианте команда SELECT имеет следующий синтаксис: SELECT <Список_выбора> [INTO <Новая_таблица>] FROM <Набор_источников_данных> [WHERE <Условие_отбора>] [GROUP BY <Ключи_группировки>] [ORDER BY <Ключи_сортировки> [ASC DESC]] Конструкция рассматриваемой команды включает в себя отдельные разделы, каждый из которых имеет свое назначение. При этом обязательными являются только два раздела — SELECT и FROM. Рассмотрим наиболее распространенные варианты применения оператора SELECT. Чтобы целиком отобразить содержимое некоторой таблицы, достаточно ввести следующий оператор: SELECT * FROM <имя_исх_табл> Здесь символ * означает «все столбцы». Если необходимо отобразить только значения из определенных столбцов таблицы, то оператор запроса должен выглядеть следующим образом: SELECT <список_столбцов> FROM <имя_исх_табл> В списке столбцов могут присутствовать выражения языка SQL, что соответствует так называемым вычисляемым полям в результирующей таблице. В эти выражения обычно входят константы и названия полей (только числовых типов), а также арифметические операции (сложение, вычитание, умножение и деление). Для построения сложных выражений разрешается использовать круглые скобки. Чтобы отобрать только те строки (записи), которые удовлетворяют определенному условию, необходимо добавить конструкцию WHERE: SELECT <список_столбцов> FROM <имя_исх_табл> WHERE <условие_отбора> При построении условия отбора могут использоваться простые операции сравнения (=, <>, <, >, <=, >=). Более сложные выражения строятся с помощью логических операций AND, OR или NOT. Кроме того, можно указать шаблон поиска (LIKE), а также проверить попадание в диапазон (BETWEEN) или принадлежность к множеству (IN). Чтобы требуемым образом отсортировать результаты запроса, в оператор SELECT помещается конструкция ORDER BY: SELECT <список_столбцов> FROM <имя_исх_табл> ORDER BY <ключи_сортировки> Каждый ключ сортировки обязательно включает в себя название столбца, а также указатель порядка сортировки: DESC (по убыванию) или ASC (по возрастанию). По умолчанию действует режим ASC. В языке SQL присутствует набор специальных функций агрегирования, которые производят статистическую обработку данных. Каждая из этих функций оперирует со значениями отдельного столбца таблицы и в результате возвращается: количество значений — функция COUNT(); сумма значений — функция SUM(); усредненное значение — функция AVG(); минимальное или максимальное значение — функция MIN() или MAX(). Особым случаем является вариант COUNT(*), когда происходит подсчет общего числа записей. Например, оператор SELECT COUNT(*) FROM <имя_исх_табл> WHERE <условие_отбора> дает количество записей таблицы, удовлетворяющих заданному условию отбора. Если до применения агрегирующей функции необходимо исключить из рассмотрения повторяющиеся значения, то аргумент функции должен начинаться с ключевого слова DISTINCT: SELECT COUNT(DISTINCT имя_столбца) FROM <имя_исх_табл> [WHERE <условие_отбора>] Рассмотренные примеры иллюстрируют получение общих итогов для некоторого отчета. Вместе с тем, очень часто в отчетах требуется формировать и промежуточные итоги. Для этой цели необходимо построить группирующий запрос, т.е. в разделе GROUP BY перечислить столбцы таблицы или указать выражения, по которым должна происходить группировка отобранных записей. В результате по каждой группе создается единственная строка с промежуточными итогами. Содержание этой строки описывается в разделе SELECT как <список_выбора>. При этом необходимо учитывать следующее требование: каждый элемент списка должен иметь единственное значение для отдельной группы. Пусть, например, в БД имеется таблица ПРЕПОДАВАТЕЛИ(Код_Преп, ФИО, Должность, Зарплата, Код_Каф). Чтобы определить количество преподавателей, работающих на каждой кафедре, а также их суммарную зарплату, необходимо выполнить следующий запрос: SELECT Код_каф, COUNT(Код_Преп), SUM(Зарплата) FROM ПРЕПОДАВАТЕЛИ GROUP BY Код_каф Download 372 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling