Различные типы данных

Не все типы значений, которые могут занимать поля таблицы — логически одинаковые. Наиболее очевидное различие — между числами и текстом. Вы не можете помещать числа в алфавитном порядке или вычитать одно им из другого. Так как системы с реляционной базой данных базируются на связях между фрагментами информации, различные типы данных должны понятно отличаться друга от друга, так чтобы соответствующие процессы и сравнения могли быть в них выполнены.
В SQL, это делается с помощью назначения каждому полю — типа данных, который указывает на тип значения, которое это поле может содержать. Все значения в данном поле должны иметь одинаковый тип. В таблице Заказчиков, например, cname и city — содержат строки текста для оценки, snum, и cnum — это уже номера. По этой причине, вы не можете ввести значение Highest(Наивысший) или значение None(Никакой) в поле rating, которое имеет числовой тип данных. Это ограничение удачно, так как оно налагает некоторую структурность на ваши данные. Вы часто будете сравни- вать некоторые или все значения в данном поле, поэтому вы можете выполнять действие только на определенных строках а не на всех. Вы не могли бы сделать этого если бы значения полей имели смешанный тип данных.
К сожалению, определение этих типов данных является основной областью в которой большинство коммерческих программ баз данных и официальный стандарт SQL, не всегда совпадают. ANSI SQL стандарт распознает только текст и тип номера, в то врем как большинство коммерческих программ исполяьзуют другие специальные типы. Такие как, DATA(ДАТА) и TIME(ВРЕМЯ) — фактически почти стандартные типы( хотя точный формат их меняется ). Некоторые пакеты также поддерживают такие типы, как например MONEY(ДЕНЬГИ) и BINARY (ДВОИЧНЫЕ). (MONEY — это специальная система исчисления исполяьзуемая компьютерами. Вся информация в компьютере передается двоичными числами и затем преобразовываются в другие системы, что бы мы могли легко использовать их и понимать.)
ANSI определяет несколько различных типов значений чисел, различи между которыми — довольно тонки и иногда их путают. Разрешенные ANSI типы данных перечислены в Приложении B.
Сложность числовых типов ANSI можно, по крайней мере частично, объяснить усилием сделать вложенный SQL, совместимым с рядом других языков.
Два типа чисел ANSI , INTEGER(ЦЕЛОЕ ЧИСЛО) и DECIMAL (ДЕСЯТИЧНОЕ ЧИСЛО) ( которые можно сокращать как INT и DEC, соответственно ), будут адекватны для наших целей, также как и для целей большинства практических деловых прикладных программ. Естественно, что тип ЦЕЛОЕ можно представить как ДЕСЯТИЧНОЕ ЧИСЛО которое не содержит никаких цифр справа от десятичной точки.
Тип для текста — CHAR ( или СИМВОЛ ), который относится к строке текста. Поле типа CHAR имеет определенную длину, которая определяется максималь- ным числом символов которые могут быть введены в это поле. Больше всего реализаций также имеют нестандартный тип называемый VARCHAR(ПЕРЕ- МЕННОЕ ЧИСЛО СИМВОЛОВ), который является текстовой строкой которая может иметь любую длину до определенного реализацией максимума (обычно 254 символа ). CHARACTER и VARCHAR значения включаются в одиночные ка- вычки как "текст". Различие между CHAR и VARCHAR в том, что CHAR должен резервировать достаточное количество памяти для максимальной длины строки, а VARCHAR распределяет память так как это необходимо.
Символьные типы состоят из всех печатных символов, включая числа. Однако, номер 1 не то же что символ "1". Символ "1" — только другой печат- ный фрагмент текста, не определяемый системой как наличие числового значения 1. Например 1 + 1 = 2, но "1" + "1" не равняется "2". Символьные значения сохраняются в компьютере как двоичные значения, но показываются пользователю как печатный текст. Преобразование следует за форматом определяемым системой которую вы используете. Этот формат преобразования будет одним из двух стандартных типов (возможно с расширениями) исполяьзуемых в компьютерных системах: в ASCII коде ( исполяьзуемом во всех персональных и малых компьютерах ) и EBCDIC коде (Расширенном Двоично-Десятичном Коде Обмена Информации) (исполяьзуемом в больших компьютерах). Определенные операции, такие как упорядочивание в алфавитном порядке значений поля, будет изменяться вместе с форматом. Применение этих двух форматов будет обсуждаться в Главе 4 .
Мы должны следить за рынком, а не ANSI, в ИСПОЛЬЗОВАНИИ типа называемого DATE(ДАТОЙ). ( В системе, которая не распознает тип ДАТА, вы конечно можете объявить дату как символьное или числовое поле, но это сделает большинство операций более трудоемкими. ) Вы должны смотреть свою документацию по пакету программ которые вы будете использовать, чтобы выяснить точно, какие типы данных она поддерживает.

‹ Субподразделения SQL
Вверх
Что такое — пользователь? ›

Айтистанция
Добавить комментарий

Adblock
detector