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

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


Десятичные числа

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

Создание столбца типа DECIMAL демонстрируется в листинга П.3. Размерность определяет общее количество цифр числа, включая те, что стоят после запятой. В случае размерности 6 и точности 2 допустимый диапазон значений будет таким: -9999,99 - 9999,99. Беззнаковые десятичные числа не поддерживаются.

mysql> CREATE TABLE testdec ( -> m DECIMAL(6,2) ZEROFILL -> ) ;

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO testdec VALUES (123.45) Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM testdec;


Строки

Строки представляют собой цепочки символов и бывают трех типов: большие двоичные объекты и перечисления. Длин П-строк ограничена 255-ю символами. Большой двоичный объект (Binary Large Object, BLOB) может содержать до 16 Мбайт текста, а в MySQL версии 4.1 этот предел будет расширен до 4 Гбайт. Перечисления - этостроки с предопределенным набором возможных значений.

ASCII-строки

ASCII-строки имеют тип CHAR либо VARCHAR. Описание этих типов вместе с их псевдонимами приведено в табл. 11.3. Столбец типа CHAR имеет фиксированную размерность. Когда значения такого столбца записываются на диск, они дополняются до нужной размерности хвостовыми которые автоматически удаляются при

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

Столбец типа VARCHAR хранится в базе данных в виде строки переменной длины, а в остальном ведет себя подобно столбцу типа CHAR. Это подразумевает удаление хвостовых пробелов при записи строки в ячейку. В MySQLверсии 4.1 в столбцах типа



Строки

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

CHAR, CHARACTER

VARCHAR, CHARACTER VARYING

Описание

Строка фиксированной длины Строка переменной длины

Синтаксис спецификации строкового типа таков: [NATIONAL змерность>)] [BINARY]

Значение размерности определяет максимальную длину строки. Более длинные строки будут усекаться. Если присутствует флаг BINARY, то воперациях сортировки и сравнения значений данного столбца будет учитываться регистр символов. В противном случае регистр не играет роли.

Флаг NATIONAL делает доменом столбца набор символов, установленный в системе по умолчанию. Это стандартный режим работы программы MySQL, поэтому данный флаг можно не указывать. Он присутствует для совместимости со стандартом

Большие двоичные объекты

Большие двоичные объекты ведут себя подобно строкам переменной длины, но способны хранить огромные информационные массивы. Кроме того, хвостовые пробелы не отсекаются. Столбцы данного вида могут быть либо двоичными, либо текстовыми с дополнительной дифференциацией по размерности (табл. 11.4). Столбцы семейства BLOB являются двоичными, поэтому в операциях сравнения будет учитываться регистр. Столбцы семейства TEXT являются текстовыми и не чувствительны к регистру. Как и в случае обычных строк, значения, превышающие максимальную длину, усекаются. У столбцов данного типа отсутствуют значения по умолчанию. Подобная возможность появится в MySQL версии

TINYBLOB, TINYTEXT

BLOB, TEXT

MEDIUMBLOB, MEDIUMTEXT

LONGTEXT

Максимальная длина

255 байтов 64 Кбайт (65535 байтов) 16 Мбаайт (16777215 байтов) 4 Гбайт (4294967295 байтов)



Перечисления и множества

К строковым типам относятся также перечисления и множества (табл. 11.5). Ячейка типа ENUM (перечисление) в определенный момент времени содержит лишь одно значение из списка возможных. Ячейка типа SET (множество) может содержать несколько уникальных значений из числатех, что входят в множество.

ENUM

Максимальное число значений

65535 64

Значение, заносимое в ячейку типа ENUM, указывается в строковом виде. Значение ячейки типа SET записывается в виде строки, содержащей разделенные запятыми элементы множества. Это подразумевает, что сами элементы не содержат запятых.

В листинге 11.4 демонстрируется создание таблицы со столбцами типа ENUM и SET, а также вставка значений в эти столбцы. Строки, которые не указаны в определении перечисления или множества, игнорируются, за исключением пустых строк.

mysql> CREATE TABLE testenum ( -> e ENUM (a, b, c), -> s SET {a, b, c} -> ) ;

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO testenum VALUES (a, (b,c,x));

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO testenum VALUES (2, 5);

Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM testenum;


Если в качестве значения перечисления указано число, оно считается индексом элемента в определении перечисления. Нумерация элементов начинается с единицы. Ячейки типа SET интерпретируются как битовые поля. Первому элементу множества соответствует младший значащий бит.



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

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