Завершая рассмотрение числовых типов данных, обсудим три свойства, которые можно указать для числовых столбцов:
• UNSIGNED – данное свойство означает, что в столбце запрещены отрицательные (со знаком «-») значения. Указывать это свойство можно для любых столбцов с числовым типом данных, кроме BIT, BOOL (BOOLEAN) и SERIAL. Для целочисленных столбцов при добавлении свойства UNSIGNED максимально допустимое значение столбца увеличивается вдвое.
• ZEROFILL – данное свойство означает, что значения при отображении будут дополнены нулями. Целые числа дополняются нулями слева в соответствии с указанным количеством отображаемых цифр, десятичные – слева и справа в соответствии с указанными точностью и шкалой. Например, если столбец определен как DOUBLE(10,5) ZEROFILL, то значение «12.23» отображается как «0012.23000». Кроме того, данное свойство запрещает отрицательные значения, как и свойство UNSIGNED. Указывать свойство ZEROFILL можно для любых столбцов с числовым типом данных, кроме BIT, BOOL (BOOLEAN) и SERIAL.
• AUTO_INCREMENT – данное свойство обеспечивает автоматическую нумерацию строк таблицы. Это означает, что при добавлении в столбец неопределенного (NULL) или нулевого значения оно автоматически заменяется следующим номером, на единицу больше предыдущего (нумерация по умолчанию начинается с единицы, установить другой начальный номер можно с помощью соответствующего свойства таблицы). Указывать это свойство можно для любых столбцов с числовым типом данных, кроме BIT и DECIMAL (DEC, NUMERIC, FIXED). В таблице может быть только один столбец с таким свойством, и для него должен быть создан ключ или индекс (об этом вы узнаете в пункте «Ключевые столбцы и индексы»).
Далее рассмотрим типы данных, используемые при хранении даты и времени.
Для столбца, который будет содержать дату и/или время, вы можете использовать один из следующих типов данных.
• DATE.
Дата в формате «YYYY-MM-DD», в диапазоне от «0000-01-01» до «9999-12-31».
• DATETIME.
Дата и время в формате «YYYY-MM-DD HH:MM:SS» в диапазоне от «0000–0101 00:00:00» до «9999-12-31 23:59:59».
• TIMESTAMP.
Отметка времени в формате «YYYY-MM-DD HH:MM:SS» в диапазоне от «1970-01-01 00:00:00» до некоторой даты в 2038 г. При добавлении или изменении строки таблицы в столбце с типом TIMESTAMP автоматически устанавливается дата и время выполнения операции (если значение этого столбца не указано явно или указано неопределенное значение). Если нужно, чтобы отметка времени проставлялась только при добавлении строки, после слова TIMESTAMP добавим свойство DEFAULT CURRENT_TIMESTAMP.
Если в таблице есть несколько столбцов с типом TIMESTAMP, отметка времени автоматически проставляется только в первом из них. Если необходимо также вносить отметку времени в какой-либо из последующих столбцов с типом TIMESTAMP, то при добавлении/изменении строки укажем для этого столбца значение NULL, которое будет автоматически заменено текущей датой.
• TIME.
Время в формате «HH:MM:SS» в диапазоне от «-838:59:59» до «838:59:59».
• YEAR, YEAR(2), YEAR(4).
Год в формате «YYYY» или «YY» (если количество цифр не указано, используется формат «YYYY»). Диапазон значений – от 1901 до 2155, если используется формат «YYYY», или от 70 (соответствует 1970 г.) до 69 (соответствует 2069 г.), если используется формат «YY».
Отмечу, что MySQL воспринимает даты не только в указанном выше формате. Вы можете ввести дату с любым знаком препинания в качестве разделителя, например 2007@12@31 23%59%59, или без разделителя, например 20071231235959. Более того, если в столбец с типом даты или времени вносится символьное или числовое значение в одном из таких форматов, MySQL автоматически преобразует это значение в дату и/или время.
Завершая изучение типов данных, рассмотрим символьные типы.
Столбцам, которые будут содержать текст, можно присвоить один из следующих типов данных.
• CHAR(<Количество символов>) или NATIONAL CHAR(<Количество символов>).
Символьная строка фиксированной длины. В таком столбце всегда хранится указанное количество символов, при необходимости значение дополняется справа пробелами. Вы можете задать количество символов от 0 до 255. Если количество символов не задано, используется длина строки по умолчанию – 1 символ.