223.50K
Category: databasedatabase

Тема 3.1.6_Примеры использования SELECT

1.

2.

SELECT список полей FROM список таблиц WHERE условия…
SELECT [ALL/DISTINCT] <список атрибутов>/
*FROM <список таблиц>
[WHERE <условие выборки>]
[ORDER BY <список атрибутов>]
[GROUP BY <список атрибутов>]
[HAVING <условие>]
[UNION<выражение с оператором SELECT>]
SELECT * [DISTINCT | ALL] {*[список полей]}
FROM <список таблиц>
[WHERE <предикат – условие выборки или соединения>]
[GROUP BY <список полей результата>]
[HAVING <предикат-условие для группы>]
[ORDER BY <список полей, по которым требуется
упорядочит ввод>]

3.

Пример 1
Оператор обеспечивает
выборку данных из полей
таблицы, указанных в
предложении SELECT, в
соответствии с условиями,
заданными в предложении
WHERE .
Пример: Выдать коды и адреса
поставщиков, коды которых
меньше 7.
SELECT SUPPLIER_ID, ADDRESS
FROM SUPPLIER
WHERE SUPPLIER_ID <7;
Результат:
SUPPLIER_ID ADDRESS
Киев
Минск
Пример 2
Выдать список кодов студентов,
которые получили на экзаменах хотя
бы одну двойку или тройку.
В предложении WHERE можно
записывать выражение с
использованием арифметических
операторов сравнения (<, >, и т.д.) и
логических операторов ( AND, OR, NOT )
как и в обычных языках
программирования.
SELECT id_st, mark
FROM mark_st
WHERE ( MARK >= 2 ) AND (
MARK <= 3 )

4.

Наряду с операторами сравнения и
логическими операторами для
составления условий в
языке SQL (из-за специфики области
применения) существуют ряд
специальных операторов, которые,
как правило, не имеют аналогов в
других языках. Вот эти операторы:
IN – вхождение в некоторое
множество значений;
BETWEEN – вхождение в некоторый
диапазон значений;
LIKE – проверка на совпадение с
образцом;
IS NULL – проверка на
неопределенное значение.
Пример 3
Оператор IN используется для
проверки вхождения в некоторое
множество значений. Так, запрос
SELECT id_st, mark
FROM mark_st
WHERE mark IN (2,3)
дает тот же результат, что и
вышеуказанный запрос - пример 2
(выведет идентификаторы всех
абитуриентов, получивших хотя бы
одну двойку или тройку на экзаменах).

5.

Пример 4
Того же результата можно добиться,
используя оператор BETWEEN:
SELECT id_st, mark
FROM mark_st
WHERE mark BETWEEN 2 AND 3
Пример 5
Выдать список всех студентов, фамилии
которых начинаются с буквы А.
В этом случае удобно использовать
оператор LIKE.
Оператор LIKE применим исключительно
к символьным полям и позволяет
устанавливать, соответствует
ли значение поля образцу.
Образец может содержать
специальные символы:
_ (символ подчеркивания) –
замещает любой одиночный
символ;
% (знак процента) – замещает
последовательность любого
числа символов.
SELECT id_st, surname
FROM student
WHERE surname LIKE 'А%'

6.

Пример 6
Очень часто возникает необходимость
произвести вычисление минимальных,
максимальных или средних значений
в столбцах. Так, например, может
понадобиться вычислить средний
балл. Для осуществления подобных
вычислений
SQL
предоставляет
специальные агрегатные функции:
MIN – минимальное значение в
столбце;
MAX – максимальное значение в
столбце;
SUM – сумма значений в столбце;
AVG – среднее значение в столбце;
COUNT – количество значений в
столбце, отличных от NULL.
Следующий запрос считает среднее среди всех
баллов, полученных студентами на экзаменах.
SELECT AVG(mark)
FROM mark_st
Естественно, можно использовать агрегатные
функции совместно с предложением WHERE.
Данный запрос вычислит средний балл
студента с кодом 100 по результатам всех
сданных им экзаменов.
SELECT AVG(mark)
FROM mark_st
WHERE id_st = 100
Данный запрос вычислит средний балл
студентов по результатам сдачи экзамена с
кодом 10
SELECT AVG(mark)
FROM mark_st
WHERE id_ex = 10

7.

Приведем запрос, который вычисляет средний балл по оценкам, полученным
на экзамене с кодом 100, для каждого студента.
SELECT id_st, AVG(mark)FROM mark_stWHERE id_ex = 100GROUP BY id_st
Заметим, что группировка может производиться более чем по одному полю.
Для запросов, содержащих секцию GROUP BY существует важное
ограничение: такие запросы могут включать в качестве результата
столбцы, по которым производится группировка, и столбцы, которые
содержат собственно результаты агрегирования.
Для того чтобы форматировать вывод, существуют различные
возможности SQL. Так, например, допустимым является включение текста
в запрос. Рассмотрим пример того, как это делается:
SELECT 'Средний балл=', AVG(mark)FROM mark_st WHERE id_ex = 10
В результате данного запроса пользователь увидит не просто некоторое
число, а число, сопровожденное поясняющим текстом.
English     Русский Rules