Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие Л.Р(SQL).doc
Скачиваний:
18
Добавлен:
21.11.2019
Размер:
159.23 Кб
Скачать

5.3 Операторы в сравнениях

5.3.1 Операторы сравнения.

В SQL применяются операторы сравнения для задания типов сравнения между двумя значениями: =(равно),>(больше, чем),<(меньше, чем), >=( больше или равно), <=( меньше или равно), <>(неравно).

Например, надо выбрать фамилии студентов, которые получают стипендию, превышающую 90000руб.

SELECT*

FROM Spisok

WHERE stip > 90000;

5.3.2 Булевы операторы

Оператор AND сравнивает два выражения - A AND B- в качестве аргументов и в результате выдает истину только в случае истинности обоих.

Оператор OR сравнивает два выражения –A OR B- в качестве аргументов и оценивает результат как истину, если хотя бы один из них истинен.

Оператор NOT анализирует единственное булевое выражение NOT A в качестве аргумента и изменяет его значение на противоположное (с истенного на противоположное или с ложного на истинное).

Пример. Выбрать из таблицы Spisok всех студентов группы ФФ1, которые получают стипендию менее 90000руб.:

SELECT*

FROM Spisok

WHERE grupa=’ФФ1’

AND stip<90000;

5.3.3 Специальные операторы в условиях.

Для формирования запросов применяются специальные операторы IN, BETWEEN, LIKE, IS NULL.

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

Пример. Выбрать из таблицы sport всех студентов, которые получают именные стипендии в сумме 15 000 и 20 000 руб.:

SELECT*

FROM sport

WHERE stip IN (15000,20000);

Оператор BETWEEN по своим функциям похож на оператор IN. В нем задается граница для начального и конечного значений множества, а между ними расположено ключевое слово AND.

Пример.

Выбрать из таблицы Spisok всех студентов, фамилии которых начинаются от буквы Е до буквы М:

SELECT*

FROM Spisok

WHERE grupa BETWEEN ‘E ’ AND ‘M’;

Оператор BETWEEN чувствителен к порядку записей в таблице (они должны быть рассортированным).

Оператор LIKE применяется только для выборки значений из полей типа CHAR или VARCHAR с поиском подстрок в указанном поле.

Применяются два типа шаблонов:

  • символ «подчеркивание» (_)- заменяет в строке один любой символ;

  • символ «процент» (%) – заменяет последовательность символов произвольной длины, включая и нулевую.

Оператор IS NULL возвращает в запросе записи с пустыми значениями.

5.4 Подведение итогов с помощью функций агрегирования

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

Агрегатные функции SQL

функция

Действие функции

COUNT ()

Подсчет числа выбранных строк, исключая NULL-значение.

SUM ()

Суммирование всех выбранных значений данного поля.

AVG ()

Подсчет среднего значения для всех выбранных значений

MAX ()

Вычисляет наибольшее из всех выбранных значений.

MIN ()

Вычисляет наименьшее из всех выбранных значений.

Функции используются в командах языка SQL. Синтаксис функций в команде SELECT:

SELECT функция (столбец_1 или*),…, функция (столбец _n )

FROM имя _таблицы;

В функциях AVG, MIN, MAX, SUM значение NULL недопустимо для подсчетов.

Синтаксис функции COUNT:

SELECT COUNT (имя _ столбца)

FROM имя _ таблицы;

Подсчитывается количество значений столбцов или записей, которые соответствуют выражению выбора ( цифровые и символьные поля). Применение Маски (*) в качестве аргумента вместо имени столбца определяет все строки. удовлетворяющие критерию команды SELECT. Например, для подсчета количества всех строк в таблице Spisok

Подается команда:

SELECT COUNT (*)

FROM Spisok;

Для подсчета количества строк по критерию отбора в команде SELECT используется предложение WHERE . так, для возврата количества студентов 5-го курса подается команда:

SELECT COUNT (*)

FROM Spisok

WHERE kurs=5;

Функция AVG возвращает среднее арифметическое значение для выделенных столбцов ( в примере для столбца stip всех строк таблицы Spisok ):

SELECT AVG (stip)

FROM Spisok;

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

Синтаксис функции SUM:

SELECT SUM ([DISTINCT] выражение)

FROM имя _ таблицы;

Пример. Найти общую сумму стипендии по группе ФФ1 4-го курса:

SELECT SUM (stip)

FROM Spisok

WHERE grup =’ФФ1’

AND kurs=4;

Для подсчета итогов по каждой группе из серии групп применяется предложение GROUP BY. Например, для подсчета суммы стипендии по каждой группе надо подать команду:

SELECT stip, SUM (grup)

FROM Spisok

GROUP BY stip;

Внутри одного предложения можно использовать несколько функций:

SELECT MAX(stip), MIN (stip), AVG (stip)

FROM Spisok;

Формирование результатов запроса

Для пользователя важно не просто получить нужную информацию, но и получить ее в определенном виде. Для этого SQL имеет средства для вставки текста и констант в выбранные поля, упорядочения выходных полей (ORDER BY), вставки комментария в выходные данные.