Константы
В стандарте 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(строка) | строка, преобразованная к верхнему регистру |