Типы данных
В стандарте ANSI/ISO (SQL1) определены типы данных, которые можно использовать для представления информации в реляционной БД. Эти типы образуют лишь минимальный набор и поддерживаются во всех коммерческих СУБД:
1) строки символов постоянной длины;
2) целые числа;
3) масштабируемые числа. В столбцах этого типа хранятся числа, имеющие дробную часть и которые необходимо вычислять точно, например денежные суммы и проценты;
4) числа с плавающей запятой.
В стандарт SQL2 вошли еще несколько типов данных:
1) строки символов переменной длины;
2) дата и время;
3) поток байтов для хранения графических и видеоизображений, программных кодов и других неструктурированных данных;
4) строки национальных символов.
В большинстве коммерческих СУБД помимо типов данных, определенных в стандартах, имеется множество дополнительных типов данных. Например, в системе Delphi реализован так называемый локальный SQL для работы с таблицами, доступ к которым обеспечивают СУБД Paradox и dBase. В этой реализации, в частности, предусмотрены типы данных, перечисленные в табл. 3.1.
Константы
В стандарте ANSI/ISO (SQL1) определен формат числовых и строковых констант, или литералов, которые представляют конкретные значения данных.
Целые и десятичные константы, называемые точными числовыми литералами, в операторах SQL представляются в виде обычных десятичных чисел со знаком или без знака:
21 –375 2000 0.0 –4.579
Таблица 1
Соответствие типов данных
Тип SQL |
Соответствует |
Примечания | |
Paradox |
dBase | ||
SMALLINT INTEGER DECIMAL(x, y) NUMERIC(x, y) FLOAT(x, y) CHAR(n) VARCHAR(n) DATE BOOLEAN
BLOB(n, m)
TIME TIMESTAMP MONEY AUTOINC BYTES(n) |
Short Long Integer BCD Number Number Alpha Alpha Date Logical
Binary Graphic Time Timestamp Money Autoincrement Bytes |
Number(6, 0) Number(11, 0) - Number(x, y) Float(x, y) Character Character Date Logical
Binary
- - Float(20, 4) - - |
Булевы данные (TRUE/ FALSE) Двоичные данные большого размера Дата и время Денежные величины
Автоинкрементный тип Двоичные данные |
Примечание: x – точность (значащие цифры); y – масштаб (дробная часть); n – длина в байтах (символах); m – подтип BLOB–поля
Константы с плавающей запятой, называемые приблизительными числовыми литералами, задаются с помощью символа Е, означающего умножение на 10 в степени:
1.5Е3 1,5*103 –314е – 2 –3,14 Строковые константы заключаются в апострофы (одинарные кавычки):
‘ИВАНОВ’ ‘Зеленоград, 801-101’
Сам апостроф в составе строковой константы представляется двумя идущими подряд апострофами: ‘ОБ’’ЕКТ’ ОБ’ЕКТ
Календарные даты и время представляются в виде строковых констант. Форматы этих констант в различных СУБД отличаются друг от друга. Кроме того, способы записи времени и даты зависят от страны. В системе Delphi утилита конфигурации BDE позволяет задать необходимый формат этих констант:
‘5/22/1999’ ’10:35:15’