Программирование >>  Неопределенные и пропущенные значения 

1 ... 8 9 10 [ 11 ] 12 13 14


Упражнения

Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала один столбец, содержащий последовательность разделенных символом ; (точка с запятой) значений всех столбцов этой таблицы, и при этом текстовые значения должны отображаться прописными символами (верхний регистр), то есть быть представленными в следующем виде: 10;КУЗНЕ-ЦОВ;БОРИС;0;БРЯНСК;8/12/1981;10.

Функция CAST является средством явного преобразования дан-н1х из одного типа в другой. Синтаксис этой команды имеет вид

сАзКзначимое выражение> AS <тип данных>

<значимое выражение> должно иметь числовой или сим-вольнхй тип языка SQL (возможно, с указанием длины, точности и масштаба) или бгть NULL-значением;

любое числовое выражение может быть явно преобразовано в любой другой числовой тип;

символьное выражение может бгть преобразовано в любой числовой тип. При этом в результате символьного выражения отсекаются начальные и конечные пробелы, а остальные символы преобразуются в числовое значение по правилам языка SQL;

если явно заданная длина символьного типа недостаточна и преобразованное значение не размещается в нем, то результативное значение усекается справа;

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

NULL-значение преобразуется в NULL-значение соответствующего типа;

числовое выражение может быть преобразовано в символьный тип.

Пример

SELECT CAST STUDENT JD AS CHAR(10) FROM STUDENT;



2.4. Агрегирование и групповые функции 43

2. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Б.КУЗНЕЦОВ;местожительства-БРЯНСК;родился-8.12.81.

3. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: б.кузнецов;место жительства-брянск;родился:8-дек-1981.

4. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Борис Кузнецов родился в 1981 году.

5. Вывести фамилии, имена студентов и величину получаемых ими стипендий, при этом значения стипендий должны быть увеличены в 100 раз.

6. То же, что и в задаче 4, но только для студентов 1, 2 и 4-го курсов и таким образом, чтобы фамилии и имена были выведены прописными буквами.

7. Составьте запрос для таблицы UNIVERSITY таким образом, чтобы

выходная таблица содержала всего один столбец в следующем виде: Код-10;ВГУ-г. ВОРОНЕЖ;Рейтинг=296.

8. То же, что и в задаче 7, но значения рейтинга требуется округлить до первого знака (например, значение 382 округляется до 400).

2.4. Агрегирование и групповые функции

Агрегирующие функции позволяют получать из таблицы! сводную (агрегированную) информацию, вхполняя операции над группой строк таблицы!. Для задания в SELECT-запросе агрегирующих операций используются следующие ключевые слова:

COUNT определяет количество строк или значений поля, вы-бранн!х посредством запроса и не являющихся NULL-значе-ниями;

SUM в!числяет арифметическую сумму всех выбраннгх значений данного поля;

AVG в!числяет среднее значение для всех выбраннгх значений данного поля;

МАХ в!числяет наибольшее из всех выбранн!х значений данного поля;

MIN вычисляет наименьшее из всех выбранных значений данного поля.



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

Функция AVG предназначена для подсчета среднего значения поля на множестве записей таблицы.

Например, для определения среднего значения поля MARK (оценки) по всем записям таблицы EXAMMARKS можно использовать запрос с функцией AVG следующего вида:

SELKCT AVERAGE (MARK) PROM EXAM MARKS;

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

SELECT COUNT(*)

FROM EXAMMARKS;

Аргументы DISTINCT и ALL позволяют, соответственно, исключать и включать дубликаты обрабатываемых функцией COUNT значений, при этом необходимо учитывать, что при использовании опции ALL значения NULL все равно не войдут в число подсчитываемых значений.

SELECT COUNT(DISTINCT SUBJ IDj FROM SUBJECT;

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

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

SELECT STUDENT ID, MAX(MARKj

FROM EXAM MARKS

GROUP BY STUDENT ID;

Выбираемые из таблицы EXAMMARKS записи группируются по значениям поля STUDENT ID, указанного в предложении GROUP BY, и для каждой группы находится максимальное зна-



1 ... 8 9 10 [ 11 ] 12 13 14

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.002
При копировании материалов приветствуются ссылки.
Яндекс.Метрика