Тип данных базы данных MySQL - PullRequest
8 голосов
/ 31 июля 2011

Я новичок в программировании баз данных, и у меня есть очень простой вопрос:

В моем графическом интерфейсе PHPMyAdmin, который я использую для создания таблиц в моей базе данных, что это означает, когда столбец "тип" (т.е. тип данных)) имеет тип данных и что-то в скобках после этого.Например: int (20), bigint (30) .....

Я понимаю, что тип int и bigint подразумевают количество используемых байтов и, следовательно, диапазон значений, которые можно сохранить.Но что означает значение в скобках?

Что означают (20) и (30) .... какое влияние это оказывает на ....

Извинитеесли Q является основным, я пытаюсь понять базы данных ....

Большое спасибо

Ответы [ 3 ]

12 голосов
/ 31 июля 2011

По сути это Ширина дисплея .

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

Точно так же, как максимальная длина может быть указана для строковых типов данных (например, VARCHAR (5 ) = максимум 5 символов), Числовые данныеДля типов ячеек может быть задана «Длина отображения» (например: INT (5) ).

Существует распространенное заблуждение о том, что указание длины отображения в столбце INT ограничитдиапазон этого столбца. Например, довольно часто считается, что определение столбца как INT (1 ) уменьшит диапазон без знака столбца до 0 - 9, и что INT (2 *)1020 *) уменьшит диапазон без знака столбца до 0 - 99. Это не так.Столбец данных INT ВСЕГДА будет иметь допустимый диапазон без знака от 0 до 4294967295 или диапазон со знаком от -2147483648 до 2147483647, независимо от указанной ширины экрана, будь то 1 ( INT (1)) ) или 20 ( INT (20) ).

  1. Ширина дисплея не меняет требований к хранению для типа данных.
  2. Ширина отображения никак не влияет на фактические данные (т. Е. Хранится полное значение для данных)
  3. Столбец возвращает свое полное значение при вызове в запросе, независимо отширина экрана (книга прямо противоречит этому утверждению, как показано выше)
0 голосов
/ 25 сентября 2014

Ссылка на документ MySQL, который объясняет это http://dev.mysql.com/doc/refman/5.7/en/numeric-type-attributes.html

0 голосов
/ 31 июля 2011

Значение в скобках - это размер или длина поля.[Edit strike] Если установлено значение 2, поле uint может содержать только значения от 0 до 99. [/ strike] Вы можете установить это значение самостоятельно и, таким образом, сэкономить немного памяти, если ожидаете, что ваши значения не превысят это ограничение.Полезно в связи с varchar.

Еще одна тема о размерах varchar: Каковы оптимальные размеры varchar для MySQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...