Программирование >>  Программный интерфейс приложений 

1 ... 33 34 35 [ 36 ] 37 38 39 ... 264


Дальше в этой главе обсуждается синтаксис объявления типов столбцов. Спецификации типов приводятся в синтаксисе оператора CREATE TABLE. Необязательная информация вьшеляется квадратными скобками ([]). Например, синтаксис MEDIUMINT[ (М) ] означает, что максимальная ширина отображения, обозначенная как [(М)], может не указываться. Однако отсутствие квадратных скобок в нотации CHAR(M) свидетельствует о том, что объявление длины (М) обязательно.

Цифровые типы столбцов

Цифровые типы данных в СУБД MySQL можно разделить на две основные категории.

Целочисленные типы. Это числа, не имеющие дробной части (1, 43, -3, О или -798432). Целые столбцы можно использовать для хранения целых величин, таких как вес (до фунта), высота (до дюйма), число звезд Галактики, количество жильцов в доме или количество бактерий в чашке Петри.

Вещественные типы. Это числа, имеющие дробную часть (3.14159, -.00273, -4.78, 39.3Е+4). Столбцы вещественного типа можно использовать для хранения величин, имеющих дробную часть, или таких, значения которых предельно мало или, наоборот, велико. Вот пример некоторых данных, которые можно представить в вещественных величинах; средняя урожайность, расстояние, затраты и зарплата, уровни занятости или биржевые цены. Этим столбцам можно присваивать целые значения, которые можно рассматривать как частный случай вещественного числа с дробной частью равной нулю.

Названия и диапазоны всех цифровых типов приведены в табл. 2.5. Объемы памяти, необходимые для хранения разных типов, приводятся в табл. 2.5.

Оператор create table

Этот оператор широко используется в данной главе. Читатель уже должен быть достаточно знаком с ним, так как мы уже пользовались им в главе 1, Знакомство с СУБД MySQL и SQL . Посмотрите также раздел, посвя-f щенный оператору create table в приложении Г, Синтаксис SQL .

Таблица 2.5. Диапазоны значений цифровых данных

Тип Диапазон

tinyinti [М) ] Знаковые значения: от-128 до 127 (от-2 до 2-1) Беззнаковые значения; от О до 255 (от О до 2°-1)

SMALLINT (М)] Знаковые значения: от-32768 до 32767 (от-2до 2М) Беззнаковые значения: от О до 65535 (от О до 2®-1)



Окончание табл. 2.5

Диапазон

mediumint ИМ)] Знаковые значения; от -8388608 до 8388607 (от -2 до 2-1)

Беззнаковые значения: от 0 до 16777215 (от 0 до 2-1)

int [ (М) ] Знаковые значения: от -2147683648 до 2147483647

(от-2до2М)

Беззнаковые значения: от 0 до 4294967295 (от 0 до 2-1)

bigint [ (М) ] Знаковые значения: от -9223372036854775808 до 9223372036854775807 (от -2 до 2-1)

Беззнаковые значения: от 0 до 184467440737709551615 (от о до 2 )

float [ [М, D) ] Минимальное ненулевое значение: +- 1.175494351Е-38

float (4) Максимальное ненулевое значение; +- 3.402823466Е+38

double [ (/и, D) ] Минимальное ненулевое значение; +-2.2250738585072014Е-308

float (8) Максимальное ненулевое значение; +-

1.797693134862315Е+308

decimal [М, D) Переменное; диапазон зависит от /W и D

Таблица 2.6. Требования к объемам памяти различных типов цифровых данных

Требования к объемам памяти

tinyint[ (М) ] smallint[(М) ] mediumint[ (М) ] int[ (М) ] bigint[ (М) ]

float[ (M,D)], float(4)

double [ (M,D) ], float{8)

decimal (M,D)

1 байт

2 байта

3 байта

4 байта 8 байт 4 байта 8 байт

Мбайт (MySQL < 3.23) и /И+2 байт (MySQL >= 3.23)



СУБД MySQL имеет пять целочисленных типов: TINYINT, SMALLINT, MEDIUMINT, INT И BIGINT. Тип INTEGER является СИНОНИМОМ INT. Различие между этими типами заключается в диапазоне величин, которые ОНИ представляют. Целочисленные столбцьг могут быть объявлены как UNSIGNED. Это исключит появление отрицательных величин. Начальным значением для такого типа будет значение 0. Объем памяти, необходимый для них, будет тоже другим. Естественно, типы, имеющие больший диапазон величин, требуют больше памяти.

СУБД MySQL имеет три вешественных типа: FLOAT, DOUBLE, DECIMAL, в отличие от целочисленных типов, вешественные типы не могут быть UNSIGNED. ТОЧНОСТЬ данных определяется минимальными значениями, допустимыми для данного типа. Это очень важно для научных приложений. (Есть соответствие между отрицательным минимумом и положительным максимумом.)

Типы doubleprecision[ (m,d) ] И real[(m,d)] анаЛОГИЧНЫ DOUBLE [ (М, D) ] . Тип numeric (m,d) - ЭТО СИНОНИМ ТИПа decimal (m,d) .

Типы FLOAT (4) И FLOAT (8) сохранены для совместимости с ODBC (Open Rata Base Connectivity). В более ранних версиях (до 3.23) они являлись аналогами типов float(10,2)h double (16, 4). Начиная с версии 3.23 FLOAT (4) и FLOAT (8) обладают своими собственными характеристиками, которых мы коснемся немного позднее.

При выборе цифрового типа, принимая во внимание диапазон значений, обязательно выбирайте наименьший тип. Выбор больших типов приведет к неэффективному увеличению размеров таблиц. В случае целых величин наиболее подходящим типом, например, для хранения возраста человека или количества детей, будет тип TINYINT [ (М) ]. Столбцы типа MEDIUMINT [ (М) ] могут хранить миллионные значения для многих типов данных, но это происходит за счет дополнительных расходов оперативной памяти. Тип bigint имеет самый большой диапазон значений, но для его хранения требуется вдвое больше памяти, чем для хранения данных в ближайшем меньшем целочисленном типе INT. Поэтому он должен использоваться только тогда, когда это действительно необходимо. Вешественные данные типа DOUBLE требуют пространства вдвое большего, чем данные типа FLOAT. Поэтому, если не нужны данные исключительно высокой точности или предельно широкого диапазона принимаемых значений, пользуйтесь типом FLOAT. Это помогает вдвое сократить расходы на хранение.

При объявлении целочисленного типа задается длина отображения М. Диапазон этого параметра лежит в пределах от 1 до 255. Он определяет количество символов, предназначенных для отображения значений столбца. Например, столбец, объявленный как MEDIUMINT (4), объявляет целочисленный столбец типа MEDIUMINT, который будет отображаться четырьмя цифрами. Кроме того, длина может присваиваться по умолчанию. Это будет максимальная длина для данного типа данных. Если длина отображаемого значения больше м символов, будет отображено все значение, а не его часть, усеченная до м.

5-1729



1 ... 33 34 35 [ 36 ] 37 38 39 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика