Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Типы данных, константы и функции 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) добавлены следующие типы данных:

  • VARCHAR(n) – строки символов переменной длины.
  • NCHAR(n) – строки локализованных символов постоянной длины.
  • NCHAR VARYING(n) – строки локализованных символов переменной длины.
  • BIT(n) – строка битов постоянной длины.
  • BIT VARYING(n) – строка битов переменной длины.
  • DATE – календарная дата.
  • TIMESTAMP(точность) – дата и время.
  • INTERVAL – временной интервал.

При выполнении сравнений в операциях фильтрации могут использоваться константы заданных типов. В стандарте определены следующие константы:

· Для числовых типов данных определены константы в виде последовательности цифр с необязательным заданием знака числа и десятичной точки. Например: 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” их в несколько раз больше.

 


Поделиться:

Дата добавления: 2015-04-04; просмотров: 104; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты