КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Типы данных, константы и функции SQL.Стандарт SQL1 (SQL/89) поддерживает следующие типы данных: · CHARACTER(n) или CHAR(n) – символьная строка постоянной длины в n символов. При задании данного типа под каждое значение всегда отводится n символов, в случае если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами. · NUMERIC[(n,m)] – число с плавающей запятой не высокой точности, где n – общее количество цифр в числе, m – количество цифр слева от десятичной запятой. · DECIMAL[(n,m)] или DEC[(n,m)] – число с плавающей запятой не высокой точности, где n – общее количество цифр в числе, m – количество цифр слева от десятичной запятой. · INTEGER или INT – целое число, размером 4 байта (числа от –2 147 483 648 до +2 147 483 647). · SMALLINT – целые числа, размером 2 байта (числа от –32 768 до +32 767). · FLOAT[(n)] – число с плавающей запятой высокой точности, где n – число байтов, резервируемое под хранение одного числа. · REAL – число с плавающей запятой высокой точности. Диапазон чисел зависит от реализации и различается между конкретными СУБД.
В стандарте SQL2 (SQL92) добавлены следующие типы данных:
При выполнении сравнений в операциях фильтрации могут использоваться константы заданных типов. В стандарте определены следующие константы: · Для числовых типов данных определены константы в виде последовательности цифр с необязательным заданием знака числа и десятичной точки. Например: 213 -326 612,757 +258,916 · Константы с плавающей запятой задаются путем задания мантиссы и порядка, разделенных символом Е. Например: 2,9Е-5 -269,2754Е6 0,257Е12 · Строковые константы задаются последовательностью символов, заключенных в одинарные кавычки. Например: ‘НТК’ ‘2+3 равняется 6’ · Константы даты, времени и временного интервала в реляционных СУБД представляются в виде строковых констант. Форматы этих констант различаются в зависимости от конкретной СУБД. Кроме того формат представления даты и времени в различных странах различен. В большинстве СУБД реализованы способы настройки форматов представления даты и времени или специальные функции преобразования форматов. Пример для MS SQL Server: Mar 27 2003 3/27/2003 3-27-03 2003 MAR 27 · Кроме пользовательских констант в СУБД могут существовать и специальные системные константы. Стандарт SQL1 определяет только одну системную константу USER, которая соответствует имени пользователя, под которым было произведено подключение к БД.
В операторах SQL могут использоваться выражения, которые строятся по стандартным правилам применения знаков арифметических операций: сложение (+), вычитание (-), умножение (*) и деление (/). Однако в ряде СУБД операция деления (/) интерпретируется как целочисленное деление. В стандарт SQL2 включена возможность вычитания и сложения дат. В большинстве СУБД также имеется операция конкатенации (слияние строк), но обозначается она, к сожалению, в различных СУБД по разному. Например, для DB2 операции конкатенации обозначается двойной вертикальной чертой (||), а MS SQL Server – знаком сложения (+).
В стандарт SQL2 был введен ряд стандартных встроенных функций: · BIT_LENGTH (строка) – количество битов в строке (длина строки). · CAST (значение AS тип_данных) – операция приведения типа. · CHAR_LENGTH (строка) – длина строки. · CONVERT (строка USING функция) – возвращает строку, преобразованную в соответствие с указанной функцией. · CURRENT_DATE – возвращает текущую дату. · CURRENT_TIME (точность) – возвращает текущее время с указанной точностью. · CURRENT_TIMESTAMP (точность) – возвращает текущие дату и время с указанной точностью. · LOWER (строка) – возвращает строку, преобразованную к нижнему регистру. · OCTED_LENGTH (строка) – число байтов в строке. · POSITION (первая_строка IN вторая_строка) – позиция (номер символа), с которой начинается вхождение первой строки во вторую. · SUBSTRING (строка FROM n FOR длина) – возвращает часть строки, начинающуюся с n-го символа и имеющую указанную длину. · TRANSLATE (строка USING функция) – возвращает строку, преобразованную с использованием указанной функции. · TRIM (BOTH символ FROM строка) – удаляет из указанной строки все первые и последние указанные символы и возвращает преобразованную строку. · TRIM (LEADING символ FROM строка) – удаляет из указанной строки все первые указанные символы и возвращает преобразованную строку. · TRIM (TRAILING символ FROM строка) – удаляет из указанной строки все последние указанные символы и возвращает преобразованную строку. · UPPER (строка) – возвращает строку, преобразованную к верхнему регистру. Помимо указанных в стандарте, большинство разработчиков крупных СУБД включают в свои продукты множество других функций. Это могут быть функции для работы со значениями даты, времени и временных интервалов, дополнительные статистические функции, математические, тригонометрические и финансовые функции, функции обработки строковых значений и многие другие. К примеру, в некоммерческой разработке, ориентированной в основном на Web-разработчиков и одной из самой нетребовательной к ресурсам компьютера, СУБД “MySQL” присутствует около 100-150 дополнительных функций (в зависимости от версии). В одной из крупнейших СУБД “Oracle” их в несколько раз больше.
|