Как обрабатываются mysql типы данных в момент создания таблицы? - PullRequest
0 голосов
/ 26 апреля 2020

Мне было интересно, действительно ли SQL что-то делает с типом данных столбца в момент создания таблицы. Я имею в виду, я понимаю, что mysql это нужно при вставке данных, чтобы понять, что разрешено вставлять в них. Но в момент создания таблицы SQL выделяет разные области памяти или что-то в этом роде? Или типы данных являются обязательными только в момент создания таблицы для удобства будущих операторов вставки таблицы?

1 Ответ

0 голосов
/ 07 мая 2020

Типы данных сохраняются для использования с запросами.

Во время INSERT данные для вставляемой строки располагаются на основе типов данных. INT будет использовать 4 байта для двоичного целого числа. VARCHAR(40) будет представлен как длина плюс до 40 символов для строки. DATE занимает 3 байта в определенном формате. Et c.

Большинство типов данных go in (через INSERT) и выходят (через SELECT) в виде строк. Таким образом, строка '2020-12-31' при использовании в DATE преобразуется во внутренний 3-байтовый формат.

Если вы попытаетесь поместить строку '123xyz' в INT, он преобразует эту строку в целое число и получает 123. (Этот пример обычно считается неправильным, но это то, что сделано.)

Когда вы JOIN две таблицы, типы данных столбцов, к которым вы присоединяетесь должен быть таким же. Если это разные типы данных, то один преобразуется в другой , если возможно .

...