Языки программирования

Функции языка SQL

В этой статье вы можете рассмотреть виды функций в языке SQL. Функции могут быть агрегатными или скалярными. Начнем…

COUNT()

COUNT() — функция возвращающая количество записей (строк) таблицы. Запись функции с указанием столбца вернет количество записей конкретного столбца за исключением NULL записей. Синтаксис функции:
COUNT(column_name);
Запись функции с указанием маски «*» вернет количество всех записей в таблице. Синтаксис:
COUNT(*);
Рассмотрим примеры. Имеется следующая таблица Universities:
Пример 1. Вывести число записей таблицы, используя функцию COUNT:
SELECT COUNT(*)
FROM Universities; // выведит 7
Пример 2. Найти количество университетов расположенных в Москве, используя функцию COUNT:
SELECT COUNT(*) FROM Universities WHERE Location = 'Moscow'; // выведит 3

AVG()

AVG() — функция возвращающая среднее значение столбца. Данная функция применима только для числовых столбцов. Синтаксис:
AVG(column_name);
Рассмотрим пример. Возьмем нашу таблицу Universities. Пример. Используя функцию AVG найти среднее число студентов (Students) всех университетов:
SELECT AVG(Students) FROM Universities; // выведит 23133

MIN()

MIN() — функция возвращающая минимальное значение столбца. Функция имеет следующий синтаксис:
MIN(column_name);
Рассмотрим пример. Возьмем нашу таблицу Universities. Пример. Используя функцию MIN найти минимальное значение столбца Professores:
SELECT MIN(Professores) FROM Universities; // выведит 936

MAX()

MAX() — функция возвращающая максимальное значение столбца таблицы. Функция имеет следующий синтаксис:
MAX(column_name);
Рассмотрим пример. Возьмем нашу таблицу Universities. Пример. Используя функцию MAX найти максимальное значение колонки Students:
SELECT MAX(Students) FROM Univerities; // выведит 57000

SUM()

SUM() — функция, возвращающая сумму значений столбца таблицы. Используется только для числовых столбцов. Синтаксис функции:
SUM ( [ALL | DISTINCT] expression );
Параметр ALL — является параметром по умолчанию. Считается сумма всех строк. При указании параметра DISTINCT — происходит подсчет только уникальных значений.

Рассмотрим примеры. Возьмем нашу таблицу Universities. Пример 1. Используя функцию SUM найти количество студентов (Students) всех университетов в таблице:
SELECT SUM(Students) FROM Universities; // выведит 161935
Пример 2. Используя функцию SUM произвести подсчет уникальных значений столбца Faculties:
SELECT SUM(DISTINCT Faculties) FROM Universities; // выведит 117 (в столбце Faculties присутствует 2 одинаковых записи, под ID 1 и 5. Значение столбца под ID 5 не суммируется.)

ROUND()

ROUND() — функция для округления десятичных чисел. Работает только с числовыми столбцами или произвольными вещественными числами. Синтаксис функции:
ROUND(expression, length);
expression — название столбца или столбцов, а так же вещественное число. length — указывает точность округления для числа.

Рассмотрим пример. Возьмём таблицу Planets:
Пример. Используя функцию ROUND округлить столбец SunSeason с точностью до одного знака после запятой:
SELECT ROUND(SunSeason, 1) FROM Planets;

UCASE()

UCASE() — функция, возвращающая значения столбца или столбцов в верхнем регистре букв. В СУБД MS SQL Server аналогом UCASE() является функция UPPER с тем же синтаксисом:
UCASE(column_name)
Рассмотрим пример. Возьмём нашу таблицу Planets. Пример. Вывести названия планет в верхнем регистре, у которых нет колец, используя функцию UCASE:
SELECT UCASE(PlanetName)
FROM Planets
WHERE HavingRings = 'No';

LCASE()

LCASE() — функция, возвращающая значения столбца или столбцов в нижнем регистре букв. В СУБД MS SQL Server аналогом оператора SQL LCASE() является функция LOWER с тем же синтаксисом:
LCASE(column_name);
Рассмотрим пример. Возьмём нашу таблицу Planets. Пример. С помощью функции LCASE вывести в нижнем регистре названия планет, у которых есть кольца:
SELECT LCASE(PlanetName)
FROM Planets
WHERE HavingRings = 'Yes';

LEN()

LEN() — функция, возвращающая длину значения в поле записи. Функция исключает из подсчета конечные пробелы. Синтаксис:
LEN(column_name);
Рассмотрим пример. Возьмём нашу таблицу Planets. Пример. Вывести первооткрывателя планеты (Opener) и длину названия открытым им планеты, с помощью функции LEN:
SELECT Opener, LEN(PlanetName) FROM Planets;

MID()

MID() — функция, выводящая определенное количество символов текстового поля таблицы. Синтаксис функции:
MID(colunm_name,start [,length]);
Параметр start задает позицию начального символа. Параметр length устанавливает количество символов для вывода начиная с позиции, указанной в параметре start.

Рассмотрим пример. Возьмём нашу старую таблицу Universities. Пример. Вывести первые 3 символа названия города (Location) с помощью функции MID:
SELECT MID(Location, 1, 3) FROM Universities;

NOW()

NOW() — функция, возвращающая системное время и дату. Синтаксис функции:
NOW();
Рассмотрим пример. Возьмём нашу старую таблицу Universities. Пример. Вывести сколько на текущий момент студентов обучается в каждом университете. используя функцию NOW:
SELECT UniversityName, Students, NOW() AS CurDate FROM Universities;
Для закрепления материала выполните пример каждой функцию самостоятельно. Если будут вопросы пишите в комментариях и я обязательно на них отвечу.
Самоучитель по SQL