Реляционная модель данных


Манипулирование данными с помощью языка SQL


Download 372 Kb.
bet17/21
Sana28.12.2022
Hajmi372 Kb.
#1023068
1   ...   13   14   15   16   17   18   19   20   21
Bog'liq
Conn&Begg

Манипулирование данными с помощью языка SQL. Основным инструментом выборки данных в языке SQL является команда SELECT. Эта команда позволяет получить доступ к данным, которые представлены как совокупность таблиц произвольной сложности.
В упрощенном варианте команда SELECT имеет следующий синтаксис:
SELECT <Список_выбора>
[INTO <Новая_таблица>]
FROM <Набор_источников_данных>
[WHERE <Условие_отбора>]
[GROUP BY <Ключи_группировки>]
[ORDER BY <Ключи_сортировки> [ASC DESC]]
Конструкция рассматриваемой команды включает в себя отдельные разделы, каждый из которых имеет свое назначение. При этом обязательными являются только два раздела — SELECT и FROM.
Рассмотрим наиболее распространенные варианты применения оператора SELECT.

  1. Чтобы целиком отобразить содержимое некоторой таблицы, достаточно ввести следующий оператор:

SELECT * FROM <имя_исх_табл>
Здесь символ * означает «все столбцы».

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

SELECT <список_столбцов>
FROM <имя_исх_табл>
В списке столбцов могут присутствовать выражения языка SQL, что соответствует так называемым вычисляемым полям в результирующей таблице. В эти выражения обычно входят константы и названия полей (только числовых типов), а также арифметические операции (сложение, вычитание, умножение и деление). Для построения сложных выражений разрешается использовать круглые скобки.

  1. Чтобы отобрать только те строки (записи), которые удовлетворяют определенному условию, необходимо добавить конструкцию WHERE:

SELECT <список_столбцов>
FROM <имя_исх_табл>
WHERE <условие_отбора>
При построении условия отбора могут использоваться простые операции сравнения (=, <>, <, >, <=, >=). Более сложные выражения строятся с помощью логических операций AND, OR или NOT. Кроме того, можно указать шаблон поиска (LIKE), а также проверить попадание в диапазон (BETWEEN) или принадлежность к множеству (IN).

  1. Чтобы требуемым образом отсортировать результаты запроса, в оператор SELECT помещается конструкция ORDER BY:

SELECT <список_столбцов>
FROM <имя_исх_табл>
ORDER BY <ключи_сортировки>
Каждый ключ сортировки обязательно включает в себя название столбца, а также указатель порядка сортировки: DESC (по убыванию) или ASC (по возрастанию). По умолчанию действует режим ASC.

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

    • количество значений — функция COUNT();

    • сумма значений — функция SUM();

    • усредненное значение — функция AVG();

    • минимальное или максимальное значение — функция MIN() или MAX().

Особым случаем является вариант COUNT(*), когда происходит подсчет общего числа записей. Например, оператор
SELECT COUNT(*)
FROM <имя_исх_табл>
WHERE <условие_отбора>
дает количество записей таблицы, удовлетворяющих заданному условию отбора.
Если до применения агрегирующей функции необходимо исключить из рассмотрения повторяющиеся значения, то аргумент функции должен начинаться с ключевого слова DISTINCT:
SELECT COUNT(DISTINCT имя_столбца)
FROM <имя_исх_табл>
[WHERE <условие_отбора>]

  1. Рассмотренные примеры иллюстрируют получение общих итогов для некоторого отчета. Вместе с тем, очень часто в отчетах требуется формировать и промежуточные итоги. Для этой цели необходимо построить группирующий запрос, т.е. в разделе GROUP BY перечислить столбцы таблицы или указать выражения, по которым должна происходить группировка отобранных записей. В результате по каждой группе создается единственная строка с промежуточными итогами. Содержание этой строки описывается в разделе SELECT как <список_выбора>. При этом необходимо учитывать следующее требование: каждый элемент списка должен иметь единственное значение для отдельной группы.

Пусть, например, в БД имеется таблица ПРЕПОДАВАТЕЛИ(Код_Преп, ФИО, Должность, Зарплата, Код_Каф). Чтобы определить количество преподавателей, работающих на каждой кафедре, а также их суммарную зарплату, необходимо выполнить следующий запрос:
SELECT Код_каф, COUNT(Код_Преп), SUM(Зарплата)
FROM ПРЕПОДАВАТЕЛИ
GROUP BY Код_каф

  1. Download 372 Kb.

    Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling