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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

Для формирования запросов применяются специальные операторы 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  возвращает в запросе записи с пустыми значениями.

 

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

 

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

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

функция Действие функции
COUNT () Подсчет числа выбранных строк, исключая NULL-значение.
SUM () Суммирование всех выбранных значений данного поля.
AVG () Подсчет среднего значения для всех выбранных значений
MAX () Вычисляет наибольшее из всех выбранных значений.
MIN () Вычисляет наименьшее из всех выбранных значений.

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

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

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

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

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

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

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), вставки комментария в выходные данные.

 

Упорядочение выходных полей

Для вывода результатов в запросе в требуемой последовательности применяется команда

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

Пример. Рассортировать все записи в таблице Spisok по алфавиту студентов:

SELECT*

FROM Spisok

             ORDER BY fio ASC;

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

Пример. Подсчитать количество отличников (по размеру стипендии-15000руб.) на каждом курсе и вывести результат в порядке возрастания курса:

 

             SELECT kurs, COUNT (DISTINCT 15000)

                   FROM Spisok

                   GROUP BY kurs

                   ORDER BY 2 ASC;

 

Соединение таблиц

Запрос может быть сформулирован (получен) на основе данных из нескольких таблиц. Между элементами таблиц устанавливаются связи; имена соединяемых таблиц перечисляются через запятую в запросе в предложении FROM. Предикат запроса может ссылаться на любой столбец любой соединяемой таблицы. Полное имя столбца соединяемых таблиц составляют:

< имя_ таблицы>. <имя_ столбца>

примеры записи столбцов.

Spisok fio

Sport. Gymnast

Kultura. Pevec

Пример соединения таблиц. Установить связь между таблицами Sport и

Kultura для выбора студентов, которые играют в футбол и занимаются сольным пением:

SELECT Sport. Fio

Sport. gymnast

Kultura. Pevec

 

Пример соединения таблиц. Установить связь между таблицами Sport и

Kultura для выбора студентов, которые играют в футбол и занимаются сольным пением:

              SELECT Sport. Fio, Kultura. Pevec

                   FROM Sport, Kultura

                   WHERE Sport. Fio= Kultura. Fio;

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

В операциях соединения таблиц кроме равенства (эквисоединения) можно использовать любые операции сравнения в предложении WHERE.

 



Поделиться:


Последнее изменение этой страницы: 2021-03-09; просмотров: 92; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.172.210 (0.013 с.)