Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Типы данных SQL




Приведем описание основных типов данных.

CHARACTER(n) или CHAR(n) – символьные строки постоянной длины в n символов. При задании данного типа под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.

NUMERIC[(n,m)] – точные числа, здесь n – общее количество цифр в числе, m – количество цифр слева от десятичной точки.

DECIMAL[(n,m)] – точные числа, здесь n – общее количество цифр в числе, m – количество цифр слева от десятичной точки.

DEC[(n,m)] - то же, что и DECIMAL[(n,m)].

INTEGER или INT – целые числа. В большинстве реализаций тип данных INTEGER соответствует целым числам, хранимым в четырех байтах, a SMALLINT – соответствует целым числам, хранимым в двух байтах. Выбор одного из этих типов определяется размером числа.

FLOAT[(n)] – числа большой точности, хранимые в форме с плавающей точкой. Здесь n – число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.

REAL – вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.

DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.

VARCHAR(n) – строки символов переменной длины.

NCHAR(N) – строки локализованных символов постоянной длины.

NCHAR VARYING(n) – строки локализованных символов переменной длины.

BIT(n) – строка битов постоянной длины.

BIT VARYING(n) – строка битов переменной длины.

DATE – календарная дата.

ТIMESТАМР(точность) – дата и время.

INTERVAL – временной интервал.

Большинство коммерческих СУБД поддерживают еще дополнительные типы данных, которые не специфицированы в стандарте. Так, например, практически все СУБД в том или ином виде поддерживают тип данных для представления неструктурированного текста большого объема. Этот тип аналогичен типу MEMO в настольных СУБД. Называются эти типы по-разному, например в ORACLE этот тип называется LONG, в DB2 - LONG VARCHAR, в SYBASE и MS SQL Server - TEXT.

Специфика реализации отдельных типов данных серьезным образом влияет на результаты запросов к БД. Особенно это касается реализации типов данных DATE и TIMESTAMP. Поэтому при переносе приложений на разных платформах они могут работать по-разному, и одной из причин может быть различие в интерпретации типов данных.

Для числовых типов данных определены константы в виде последовательности цифр с необязательным заданием знака числа и десятичной точкой. То есть правильными будут константы:

213-314 612.716 + 551.702

Константы с плавающей запятой задаются, как и в большинстве языков программирования, путем задания мантиссы и порядка, разделенных символом Е, например:

2.9Е-4 -134.235Е7 0.54267Е18

Строковые константы должны быть заключены в одинарные кавычки:

'Крылов Ю.Д.' 'Санкт-Петербург'

В некоторых реализациях, например MS SQL Server и Informix, допустимы двойные кавычки в строковых константах:

"Москва" "New York"

Использование двойных кавычек может вызвать дополнительные проблемы при переносе приложений на другую платформу, поэтому рекомендуеся по возможности избегать такого представления символьных констант.

Константы даты, времени и временного интервала в реляционных СУБД представляются в виде строковых констант. Форматы этих констант отличаются в различных СУБД. Кроме того, формат представления даты различен в разных странах. В большинстве СУБД реализованы способы настройки форматов представления дат или специальные функции преобразования форматов дат, как сделано, например, в СУБД ORACLE.

Приведем примеры констант в MS SQL Server:

March 15, 1999 Маг 15 1999 3/15/1999 3-15-99 1999 MAR 15

В СУБД ORACLE та же константа запишется как 15-MAR-99

Кроме пользовательских констант в СУБД могут существовать и специальные системные константы, например, USER соответствует имени пользователя, под которым вы подключились к БД.

В операторах SQL могут использоваться выражения, которые строятся по стандартным правилам применения знаков арифметических операций сложения (+), вычитания (-), умножения (*) и деления (/). Однако в ряде СУБД операция деления (/) интерпретируется как деление нацело. Имееется возможность выполнения операций сложения и вычитания над датами. В большинстве СУБД также определена операция конкатенации над строковыми данными, обозначается она по-разному. Так, например, для DB2 операция конкатенации обозначается двойной вертикальной чертой, в MS SQL Server – знаком сложения (+)

Имеются стандартные встроенные функций:

BIT_LENGTH(cтpoкa) – количество битов в строке;

САSТ(значение AS тип данных) – значение, преобразованное в заданный тип данных;

CHAR_LENGTH(cтpoкa) – длина строки символов;

CONVERT(cтpoкa USING функция) – строка, преобразованная в соответствии с указанной функцией;

CURRENT_DATE - текущая дата;

CURRENT_TIME(точность) – текущее время с указанной точностью;

CURRENT_TIMESTAMP(точность) – текущие дата и время с указанной точностью;

LOWER(cтpокa) – строка, преобразованная к верхнему регистру;

OCTED_LENGTH(строка) – число байтов в строке символов;

POSITION(первая строка IN вторая строка) – позиция, с которой начинается вхождение первой строки во вторую;

SUBSTRING(cтpoкa FROM n FOR длина) – часть строки, начинающаяся с n-го символа и имеющая указанную длину;

TRANSLATE(строка USING функция) – строка, преобразованная с использованием указанной функции;

TRIM(BOTH символ FROM строка) – строка, у которой удалены все первые и последние символы;

TRIM(LEADING символ FROM строка) – строка, в которой удалены все первые указанные символы;

TRIM(TRAILING символ FROM строка) – строка, в которой удалены последние указанные символы;

UPPER(строка) – строка, преобразованная к верхнему регистру.




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 512; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.