Программирование >>  Создание клиентов mysql 

1 ... 39 40 41 [ 42 ] 43 44 45 ... 201




MySQL поддерживаются три основных типа столбцов: числа, строки и значения даты/времени. К первому типу относятся целые числа и числа с плавающей запятой. Строки содержат цепочки текстовых или двоичных символов. Значения даты/времени могут быть представлены в самых разных форматах.

Тип столбца определяет диапазон значений, которые можно заносить в данный столбец. Здесь не допускается та гибкость, которая свойственна переменным. Тип столбца жестко задается при определении таблицы. При записи в ячейку значения другого формата осуществляется автоматическое приведение типа.

Спецификация большинства типов допускает указание размерности в скобках. Это значение определяет максимальное количество символов в представлении значения, не считая знака минус и цифр после запятой для чисел. В случае чисел с плавающей запятой можно указать вторую размерность, определяющую количество цифр после запятой.

Как правило, размерность не играет никакой роли для числовхх столбцов. Более крупные значения принимаются и отображаются правильно. Разве что числа с плавающей запятой могут округляться до нужной разрядности. Размерность важна для строко-в1х столбцов. Слишком длинные строки усекаются в момент вставки в таблицу.

Числа

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



Целые числа

В табл ил перечислены целочисленные типы данных и соответствующие им диапазоны значений. Числа, выходящие за пределы диапазона, преобразуются в минимальное или максимальное значение.

TINYINT

SMALLINT

MEDIUMINT

INT,INTEGER

BIGINT

Знаковый диапазон -127-127 -32768-32767 -8388608 - 8388607 -2147483648 - 2147483647

-9223372036854775808 -

9223372036854775807

Беззнаковый диапазон 0-255 0-65535 0-16777215 0-4294967295 О -18446744073709551615

Синтаксис спецификации целочисленного типа таков:

<тип> [ {<размерность>) ] [UNSIGNED] [ZEROFILL]

Как минимум, нужно указать имя типа. Следом за ним в скобках приводится требуемая размерность. Флаг UNSIGNED обозначает беззнаковое число. Флаг ZEROFILL говорит о том, что в случае необходимости число должно быть дополнено ведущими нулями до нужной размерности. Применение флага ZEROFILL продемонстрировано в листинге

mysql> CREATE TABLE testint (

-> i INT (11) UNSIGNED ZEROFILL

-> );

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO testint VALUES (123); Query OK, 1 row affected (0.01 sec)

my3ql> SELECT * FROM testint; -t- +

I i I

I 00000000123 I + +

1 row in set (0.00 sec)



Числа

Числа с плавающей запятой

Числа с плавающей запятой представляют собой приблизительные значения. Они подходят для столбцов, где хранятся дробные величины или числа, выходящие за пределы самого крупного целочисленного диапазона (BIGINT). Чтобы не происходило непредсказуемых погрешностей вычислений, MySQL округляет вставляемые числа до требуемой точности, которая указана в определении столбца, хотя на практике такие погрешности никогда не возникают.

Имеются два типа чисел с плавающей запятой: числа одинарной точности и числа двойной точности. Их диапазоны приведены в табл. 11.2.

FLOAT

DOUBLE, DOUBLE PRECISION, REAL

Диапазон

±1,175494351Е-38 - ±3,402823466Е+38 ±2,2250738585072014E-308 - ±1,7976931348623157Е+308

Синтаксис спецификации типа с плавающей запятой таков:

<тип>[{<размерность>,<точность>)] [ZEROFILL]

Точность - это количество цифр после запятой. Флаг ZEROFILL указывает на необходимость дополнения числа ведущими нулями до нужной размерности. Беззнаковые числа с плавающей запятой в MySQL не поддерживаются.

При описании столбца данного типа достаточно указывать одну лишь размерность. Это соответствует спецификации ODBC. Согласно ей, столбец, размерность которого меньше чем 24, будет иметь тип FLOAT, иначе - тип DOUBLE (листинг 11.2).

mysql> CREATE TABLE testfloat( -> f FLOAT(20), -> d FLOAT(40)

-> ) ;

Query OK, 0 rows affected .00 sec) mysql> DESCRIBE testfloat;




1 ... 39 40 41 [ 42 ] 43 44 45 ... 201

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