Мартин Грубер - Понимание SQL
- Название:Понимание SQL
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Мартин Грубер - Понимание SQL краткое содержание
Данная книга является очень хорошим введением в теорию реляционных БД для пользователей-новичков, а также хорошим началом в освоении SQL, грамотном построение запросов, понимании того как эти запросы работают. Безусловно рекомендуется к прочтению для начинающих пользователей.
Понимание SQL - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
INT (или INTEGER)
Число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от десятичной точки, то-есть с масштабом равным 0. Аргумент размера не используется (он автоматически установливается в реализационно-зависимое значение).
SMALLINT
Такое же как INTEGER, за исключением того, что, в зависимости от реализации, размер по умолчанию может (или не может ) быть меньшее чем INTEGER.
APPROXIMATE NUMERIC
ПРИБЛИЗИТЕЛЬНОЕ ЧИСЛО
FLOAT |
Число с плавающей запятой на основе 10 показа тельной функции. Аргумент размера состоит из одного числа определяющего минимальную точность. |
REAL |
Такое же как FLOAT, за исключением того, что никакого аргумента размера не используется. Точность становлена реализационно-зависимую по умолчанию. |
DOUBLE |
Такое же как REAL, за исключением того, что реаPRECISION лизационно-определяемая точность для DOUBLE PRE( или DOUBLE ) CISION должна превышать реализационно-определяемую точность REAL. |
Когда используется вложение SQL в другие языки, значения используемые и произведенные командами SQL, обычно сохраняются в переменных главного языка( см. Главу 25). Эти переменные должны иметь тип данных совместимый со значениями SQL, которые они будут получать. В дополнениях, которые не являются частью официального SQL стандарта, ANSI обеспечивает поддержку при использовании вложения SQL в четыре языка: Паскаль, PL/I, КОБОЛ, и ФОРТРАН. Между прочим, он включает определение эквивалентов SQL, для данных типов переменных используемых в этих языках.
Эквиваленты типов данных четырех языков определенных ANSI:
ПЛ/I
SQL ТИП |
ЭКВИВАЛЕНТ ПЛ/I |
CHAR |
CHAR |
DECIMAL |
FIXED DECIMAL |
INTEGER |
FIXED BINARY |
FLOAT |
FLOAT BINARY |
КОБОЛ
SQL ТИП |
ЭКВИВАЛЕНТ КОБОЛА |
CHAR () |
PIC X () |
INTEGER |
PIC S () USAGE COMPUTTATIONAL |
NUMERIC |
PIC S (< nines with embedded V > )DISPLAY SING LEADING SEPERATE |
ПАСКАЛЬ
SQL ТИП |
ЭКВИВАЛЕНТ ПАСКАЛЯ |
INTEGER |
INTEGER |
REAL |
REAL |
CHAR () |
PACKED ARRAY [1..] OF CHAR |
ФОРТРАН
SQL ТИП |
ЭКВИВАЛЕНТ ФОРТРАНА |
CHAR |
CHAR |
INTEGER |
INTEGER |
REAL |
REAL |
DOUBLE PRECISION |
DOUBLE PRECISION |
Приложение C. НЕКОТОРЫЕ ОБЩИЕ НЕСТАНДАРТНЫЕ СРЕДСТВА SQL
ИМЕЕТСЯ РЯД ОСОБЕННОСТЕЙ ЯЗЫКА SQL которые пока не определены как часть стандарта ANSI или стандарта ISO (Международная Организация По Стандартизации), и являются общими для многочисленных реализаций, так как они были получены для практического использования. Это дополнительные элементы чисел этих особенностей. Конечно, эти особенности меняются от программы к программе, и их обсуждение предназначено только чтобы показать некоторые общие подходы к ним.
Типы данных поддерживаемые стандартом SQL, собраны в Приложении B. Это колличество для CHARACTER и разнообразие числовых типов. Реализация их может, фактически, быть значительно сложнее чем показано в терминах типов, которые они фактически могут использовать. Мы будем здесь обсуждать ряд таких нестандартных типов данных.
Как упомянуто в Главе 2, тип данных DATE широко поддерживается, даже если он не часть стандарта. Мы использовали ранее в нашей таблице Порядков, этот тип использующий формат mm/dd/yyyy. Это стандартный формат IBM в США. Разумеется возможны и другие форматы, и программные реализации часто поддерживают ряд форматов, позволяя вам выбирать тот который лучше для вас подходит. Реализация которая предлагает эту особенность должна быть способна преобразовывать дату одного формата в другой - автоматически.
Имеются несколько основных форматов даты с которыми вы можете сталкнуться:
Стандарт |
Формат |
Пример |
Международная Организация По Стандартизации (ISO) |
yyyy-mm-dd |
1990-10-31 |
Японский Индустриальный Стандарт (JIS) |
yyyy-mm-dd |
1990-10-31 |
IBM Европейский Стандарт (EUR) |
dd.mm.yyyy |
10.31.1990 |
Наличие специального типа определяемого для даты, дает возможность выполнять арифметические операция с датами. Например, вы можете добавлять число дней к дате и получать другую дату, в программе, самостоятельно следящей за числом дней в месяцах, високосными годами, и так далее. Даты могут также сравниваться; например фраза, дата A < дата B, означает, что дата A предшествует дате B по времени.
Кроме даты, большое количество программ определяют специальный тип для времени, который может также быть представлен в ряде форматов, включая следующие:
Стандарт |
Формат |
Пример |
МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ (ISO) |
hh-mm-ss |
21.04.37 |
Японский Индустриальный Стандарт (JIS ) |
hh-mm-ss |
21.04.37 |
IBM Европейский Стандарт |
hh-mm-ss |
21.04.37 |
IBM USA Стандарт(USA) |
hh.mm AM/PM |
9.04 PM |
Время может добавляться или сравниваться точно также как дата, с коррекцией числа секунд в минутах или часах автоматически. Кроме того, специально встроенные константы указывающие текущую дату или время (CURDATE или CURTIME ) являются общими. Они похожи на константу USER (Пользователь) в которой их значение будет непрерывно меняться.
Можете ли вы включать время и дату в одно поле ? Некоторые реализации определяют тип DATE достаточно точно, чтобы включать туда еще и TIME.
В качестве альтернативы, третий обобщающий тип, TIMESTAMP, может быть определен как комбинация этих двух.
ANSI поддерживает только один тип чтобы представлять текст. Это - тип CHAR. Любое поле такого типа должно иметь определенную длину. Если строка вставляемая в поле меньше чем длина поля, она дополняется пробелами; строка не может быть длиннее чем длина поля.
Хотя и достаточно удобное, это определение все же имеет некоторые ограничения для пользователя. Например, символьные поля должны иметь одинаковую длинну чтобы можно было выполнить команду UNION. Большинство реализаций, поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR( или просто LONG). В то время как поле типа CHAR всегда может распределить память для максимального числа символов которое может сохраняться в поле, поле VARCHAR при любом колличестве символов, может распределить только определенное количество памяти чтобы сохранить фактическое содержание поля, хотя SQL может установить снаружи, некоторое дополнительное пространство памяти чтобы следить за текущей длиной поля.
Читать дальшеИнтервал:
Закладка: