Согласно реляционной концепции построения баз данных, в таблицах не содержатся столбцы, значения в которых могут быть получены на основании данных из других столбцов(т.е. вычисляемые столбцы). Вычисляемые столбцы в языке SQL реализуются с использованием известных знаков операций (+ - сложение, - - вычитание, * - умножение и / - деление), скобок и различных встроенных функций. Функции делятся на: математические для работы с числовыми данными, строковые для работы со строковыми столбцами, функции для работы с датой и временем и прочие функции.
Примеры математических функций, которые используются в стандартном SQL в таблице 2 ниже.
Таблица 2.2
Некоторые функции, используемые в SQL
Функция
Описание операции
SIN()
Вычисление синуса
COS()
Вычисление косинуса
LOG()
Вычисление логарифма
ROUND(X,Y)
Округление X до Y знаков после запятой
SQR()
Вычисление квадрата
SIGN()
Вычисление знака
ABS()
Вычисление абсолютного значения.
Замечание: Более полный состав математических функций можно найти в описании конкретной версии языка SQL (например, в SQL Oracle состав функций и их синтаксис может отличаться от стандартных и от функций в Access)
В версии языка SQL СУБД Access имена математических функции похожи на имена функция языка VB, что значительно облегчает их запоминание для тех кто знает этот язык программирования.
Пример запроса на вычисления приведен ниже:
SELECT ROUND(amount,2) AS ОКРУГЛ, SIN(amount) AS СИНУС, LOG(amount) AS LOG, ABS(amount) AS АБСОЛЮТ, ROUND(SQR(amount),2) AS КВАДРАТ, (amount)/10+ ((amount)/20)*1.234 AS Выражение
FROM Orders;
Результат запроса показан на рис. 29.
Рис. 29. Пример результата запроса с вычисляемыми столбцами
Особый интерес представляют функции для работы со строковыми переменными. Они позволяют строить комбинированные фразы из строковых столбцов. Например, если есть столбец с именем и фамилией, то можно сконструировать новый столбец который будет содержать только инициалы.
Примеры некоторых строковых функций языка SQL приведены в табл. 7.
Таблица 7
Некоторые функции для работы со строковыми переменными в SQL
Функция
Описание операции
&
Символ конкатенации (объединения) строк
LENGTH(ss)
Вычисление длинны строки ss
LEFT(ss, n)
Взять n левых символов в строке ss
ASCII(s)
Вычислить ASCII-код для символа s
CHR(n)
Найти CHR-символ для целого числа n.
UPPER(ss)
Перевод всех символов строки ss в верхний регистр
LOVER(ss)
Перевод всех символов строки ss в нижний регистр
SUBSTR(ss,n,m)
Взять подстроку с позиции n длинною m символов из строки ss
Пример запроса на использование функций со строковыми переменными:
SELECT UCASE(cname) AS Фамилия, UCASE(LEFT(cname,1))&"." AS Инициалы, LEFT(caddress,10) & " - " & ctel AS [Адрес и телефон]
FROM customers;
Результат запроса со строковыми функциями показан на рис. 30
Рис. 30. Результат работы запроса с функциями для строк