Константы
В стандарте ANSI/ISO определен формат числовых и строковых констант, или литералов, которые представляют конкретные значения данных. Этот формат используется в большинстве реализации SQL.
Числовые константы. Целые и десятичные константы (известные также под названием точных числовых литералов) в операторах SQL представляются в виде обычных. десятичных чисел с необязательным знаком плюс (+) или минус (-) перед ними:
21 -3752000,00 +497500,8778
Константы с плавающей запятой (известные также под названием приблизительных числовых литералов) определяются с помощью символа Е и имеют такой же формат, как и в большинстве языков программирования. Ниже приведены примеры констант с плавающей запятой:
1.5Е3 -3.14159Е1 2.5Е-7 0.783926Е21
Символ Е читается как "умножить на десять в степени", так что первая константа представляет число "1,5 умножить на десять в степени 3", или 1500.
Строковые константы. В соответствии со стандартом ANSI/ISO, строковые константы в SQL должны быть заключены в одинарные кавычки, как показано в следующих примерах:
Jones, John J.' 'New York' 'Western'
Если необходимо включить в строковую константу одинарную кавычку, вместо нее следует написать две одинарные кавычки.
Константы даты и времени. В реляционных СУБД календарные даты, время и интервалы времени представляются в виде строковых констант. Форматы этих констант в различных СУБД отличаются друг от друга. Кроме того, способы записи времени и даты изменяются в зависимости от страны.
Символьные константы. Кроме пользовательских констант, в SQL существуют специальные символьные константы, возвращающие значения, хранимые в самой СУБД.
В стандарт SQL2 вошли наиболее полезные символьные константы из различных реализации SQL, в частности константы CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, а также USER, SESSION_USER и SYSTEM_USER (обратите внимание на знак подчеркивания!).
Выражения в SQL используются для выполнения операций над значениями, считанными из базы данных или используемыми для поиска в базе. данных. Например, в следующем запросе вычисляется процентное соотнесение объема и плана продаж для каждого офиса:
SELECT CITY, TARGET, SALES, (SALES/TARGET) * 100
FROM OFFICES
В соответствии со стандартом ANSI/ISO, в выражениях можно использовать четыре арифметические операции: сложение (X + Y), вычитание (X – Y), умножение (X * Y) и деление (X / Y). Для формирования сложных выражений можно использовать скобки.
Отсутствующие данные (значения NULL). Поскольку база данных представляет собой модель реального мира, отдельные элементы данных в ней неминуемо будут отсутствовать или подходить не для всех сущностей. Для указания на такие данные используеBӦся специальная константа – NULL.
Встроенные функции
В стандарт SQL2 вошли наиболее полезные функции из различных реализации SQL. Эти функции перечислены в таблце.
табл. 9.2 Встроенные функции SQL.
| Функция | Возвращается |
| ВIT LENGTH(строка) | количество битов в строке |
| САSТ(значение AS тип данных) | значение, преобразованное тип данных (например, дата преобразованная в строку) |
| CHAR_LENGTH(строка) | длина строки символов |
| CONVERT(строка USING функция) | строка, преобразованная в соответствии с указанной функцией |
| CURRENT_DATE | текущая дата |
| CURRENT_TIME(точность) | текущее время с указанной точностью |
| CURRENT_IMESTAMP (точность) | текущие дата и время с указанной точностью |
| EXTRACT(часть FROM значение) | указанная часть (DAY, HOUR и т.д.) из значения типа DATETIME |
| LOWER(строка) | строка, преобразованная к нижнему регистру |
| OCTETLENGTH(строка) | число байтов в строке символов |
| POSITION(первая строка IN вторая строка) | позиция, с которой начинается вхождение первой строки во вторую строку |
| SUBSTRING(строка FROM n FOR длина) | часть строки, начинающаяся с n-го символа и имеющая указанную длину |
| TRANSLATE(строка USING функция) | строка, преобразованная с помощью указанной функции |
| TRIM(BOTH символ FROM строка) | строка, в которой удалены первые и последние указанные символы |
| TRIM(LEADING символ FROM строка) | строка, в которой удалены первые указанные символы |
| TRIM(TRAILING символ FROM строка) | строка, в которой удалены последние указанные символы |
| UPPER(строка) | строка, преобразованная к верхнему регистру |