В языке SQL/89 поддерживаются следующие типы данных:
• CHARACTER(n) или CHAR(n) — символьные строки постоянной длины в n символов.
• NUMERIC[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.
• DECIMAL[(n,m)] — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.
– DEC[(n,m)] — то же, что и DECIMAL[(n,m)].
• INTEGER или INT — целые числа, соответствует целым числам, хранимым в четырех байтах.
• SMALLINT — целые числа меньшего диапазона соответствует целым числам, хранимым в двух байтах.
• FLOAT[(n)] — числа большой точности, хранимые в форме с плавающей точкой. Здесь n — число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
• REAL — вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.
• DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.
В стандарте SQL92 добавлены следующие типы данных:
• VARCHAR(n) — строки символов переменной длины.
• NCHAR(N) — строки локализованных символов постоянной длины.
• NCHAR VARYING(n) — строки локализованных символов переменной длины.
• BIT(n) — строка битов постоянной длины.
• BIT VARYING(n) — строка битов переменной длины.
• DATE — календарная дата.
• TIMESTAMP(точность) — дата и время.
• INTERVAL — временной интервал.
В стандарте SQL1 не были определены встроенные функции, в большинстве коммерческих СУБД такие функции были реализованы, и в стандарт SQL2 уже введен ряд стандартных встроенных функций:
• BITLENGTH(строка) — количество битов в строке;
• CAST(значение AS тип данных) — значение, преобразованное в заданный тип данных;
• CHARLENGTH(строка) — длина строки символов;
• CONVERT(строка USING функция) — строка, преобразованная в соответствии с указанной функцией;
• CURRENTDATE — текущая дата;
• CURRENTTIME(точность) — текущее время с указанной точностью;
• CURRENTTIMESTAMP(точность) — текущие дата и время с указанной точностью;
• LOWER(строка) — строка, преобразованная к нижнему регистру;
• OCTEDLENGTH(строка) — число байтов в строке символов;
• POSITION( первая строка IN вторая строка) — позиция, с которой начинается вхождение первой строки во вторую;
• SUBSTRING(строка FROM n FOR длина) — часть строки, начинающаяся с n-го символа и имеющая указанную длину;
• TRANSLATE(строка USING функция) — строка, преобразованная с использованием указанной функции;
• TRIM(BOTH символ FROM строка) — строка, у которой удалены все первые и последние символы;
• TRIM(LEADING символ FROM строка ) — строка, в которой удалены все первые указанные символы;
• TRIM(TRAILING символ FROM строка) — строка, в которой удалены последние указанные символы;
• UPPER(строка) — строка, преобразованная к верхнему регистру.