Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Запросы к базе данных с использованием языка SQL. Извлечение данных. Функции агрегирования




SQL (Structure Query Language, язык структурированных запросов) - это язык программирования и запросов к базам данных, который используется для осуществления доступа к данным, для запросов к реляционным СУБД, для управления БД и их обновления.

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

SELECT [предикат] список_полей

FROM имена_таблиц

[WHERE критерий_поиска]

[GROUP BY критерий_группировки ]

[HAVING групповой_критерий]

[ORDER BY критерий_столбца]

Предложение SELECT позволяет выбрать данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями и имеет следующий синтаксис:

SELECT [аргументы] список_полей

Список полей – это заданный в предложении SELECT список выражений или колонок, определяющий, какие данные должны быть извлечены. Список может быть задан одним из следующих способов:

- *- это означает выбрать все колонки, указанных в запросе;

- таблица.* | представление.* | псевдоним.* - это означает выбрать все колонки из указанной таблицы | представления | таблицы с указанным псевдонимом.

Аргументы:

- DISTINCT - аргумент, дающий возможность исключить дублирующиеся значения из результата выполнения предложения SELECT.

- TOP n [PERCENT] – аргумент, возвращающий в результате выполнения предложения SELECT только первые n строк из набора результата. Если задано ключевое слово PERCENT, то будут возвращаться первые строки, составляющие n процентов от общего количества строк.

Предложение FROM содержит имена таблиц и представлений (запросов), из которых извлекаются данные и имеет следующий синтаксис:

FROM таблица [AS псевдоним] | представление [AS псевдоним]

Псевдонимом является другое имя таблицы, которое может быть использовано в дальнейшем для ссылки на таблицу.

П редложение WHERE позволяет определить условие отбора строк из таблиц, перечисленных в предложении FROM для включения их в результат выполнения команды SELECT, и имеет следующий синтаксис:

WHERE критерий_поиска | таблица1.поле {*= | =*} таблица2.поле

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

При составлении логического условия можно использовать операторы, идентификаторы, функции, константы и подзапросы.

Операторы бывают реляционные, логические (булевы и специальные). Реляционные операторы – это математические символы (>, <, >=, <=, =, <>), которые задают определенный тип сравнения между двумя значениями. Булевы операторы (AND, OR, NOT) связывают одно или несколько выражений «истина / ложь» и в результате получают единственное значение «истина / ложь». К специальным операторам относятся операторы IN, LIKE, BETWEEN,.

Оператор LIKE применяется для поиска по соответствующему шаблону только к полям типа Char, VarChar (текстовых), и имеет следующий синтаксис:

выражение [NOT] LIKE шаблон.

Шаблоны – это специальные символы – заменители:

- символ % (процент) заменяет последовательность символов произвольной длины, например:

WHERE фамилия LIKE “С%” возвращает все строки с фамилиями, первой буквой которых будет С;

- _ (подчеркивание) – заменяет один символ, например:

WHERE фамилия LIKE “С_к%” возвращает все строки с фамилиями, первой буквой которых будет С, а третья буква к;

- [ ] – вместо одного символа строки будет подставлен набор возможных символов, указанных в ограничителях, например:

WHERE фамилия LIKE “[А-С]%” возвращает все строки с фамилиями, начинающихся на буквы от А до С;

- [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях, например:

WHERE фамилия LIKE “[^А-С]%” возвращает все строки с фамилиями, начинающихся на буквы вне диапазона от А до С.

Оператор IN используется как условие поиска, проверяющее, не соответствует ли проверяемое выражение кому –либо из значений в подзапросе или в списке значений, и имеет следующий синтаксис:

выражение [NOT] IN (значение_1, значение_2,...)| подзапрос

Например, WHERE фамилия IN (‘Иванов’, ‘Петров’, ‘Сидоров’).

Оператор BETWEEN используется всегда в сочетании с оператором AND и задает диапазон вхождения, применяемый как условие поиска, и имеет следующий синтаксис:

выражение [NOT] BETWEEN значение_1 AND значение_2.

Аргументы значение_1 и значение_2 определяют начало и конец диапазона значений. Они могут быть заданы числовыми, или символьными константами. Первое значение должно быть первым в соответствии с алфавитным и числовым порядком. Например, WHERE Фамилия BETWEEN ‘Орлов’ AND ‘Сидоров’.

Оператор IS NULL используется в условиях поиска, ищущих строк, содержащие NULL-значения в заданной колонке, и имеет следующий синтаксис:

выражение IS [NOT] NULL.

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

GROUP BY [ALL] критерий_группировки [WITH {CUBE | ROLLUP}].

Аргумент критерий_группировки определяет условие группировки. Как правило, здесь указывается имя колонки таблицы, по которой будет выполнена группировка.

Аргумент ALL в разделе GROUP BY указывает серверу на необходимость выводить список всех групп, не выполняя для них функции агрегирования.

Аргумент WITH CUBE определяет необходимость суперагрегирования данных. В результате будут добавлены строки, являющиеся результатом агрегирования уже агрегированных данных (итого по группе, итого всего).

Аргумент WITH ROLLUP позволяет избежать излишнего агрегирования.

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

Функция AVG() – вычисляет среднее значение для набора данных, и имеет следующий синтаксис:

AVG ([ALL | DISTINCT] выражение)

ALL – агрегирование выполняется для всех строк набора данных (по умолчанию).

DISTINCT – агрегирование выполняется только для уникальных строк.

Функция Count() – подсчитывает количество строк, которое должно быть выведено при выполнении запроса, и имеет следующий синтаксис:

COUNT ({[ALL / DISTINCT] выражение / * })

«*» используется только в случае группировки данных с помощью раздела GROUP BY.

Функция Sum() – выполняет суммирование всех значений в указанной колонке, и имеет следующий синтаксис:

SUM ([ALL | DISTINCT] выражение).

Функция Max() – возвращает максимальное значение в указанной колонке, и имеет следующий синтаксис:

MAX ([ALL | DISTINCT] выражение).

Функция Min() – возвращает минимальное значение в указанной колонке, и имеет следующий синтаксис:

MIN([ALL | DISTINCT] выражение).

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

Предложение ORDER BY применяется, чтобы задать порядок, в котором должны сортироваться строки набора результатов. С помощью ключевых слов ASC или DESC можно явно указать порядок сортировки:

- ASC – по возрастанию значений (действует по умолчанию);

- DESC – по убыванию.

 





Поделиться с друзьями:


Дата добавления: 2015-11-05; Мы поможем в написании ваших работ!; просмотров: 799 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2227 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.