Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: простые типы данных в mysql  (Прочитано 14610 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 26-01-2016 05:48 » 

хочется для себя прояснить следующий момент:

к примеру, когда в визарде редактора sql создаёшь поле, скажем, int, он (редактор) автоматом предлагает

для int  - int(10)
для smallint - smallint (5)
для tinyint - tinyint(3)

Насколько я понимаю, в скобках указан размер в байтах, и должны быть значения 4, 2 и 1 соответственно

Какое тут правило действует ? Нужно ли выставлять вручную "нужное" количество байтов ? И к чему тогда имя типа "int","smallint ","tinyint" , не удобнее ли тогда использовать

int(8)
int(4)
int(2)
int(3)

В общем, прочистите мне мозги Отлично
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 26-01-2016 09:40 » 

Леша, Леша... В доку ты даже не посмотрел.

Это стандартный для SQL формат поля. Для целого типа в скобках сообщается ширина текстового поля, которое будет создано из этого числа при выдаче. Ведь, внезапно, SQL - текстовый обмен. Т.е. ставишь int(2), в поле можешь заносить в рамках int32 (тип же int), а при выводе MySQL постарается сформатировать в двухсимвольное поле. Естественно, числа, большие 99, будут показаны полностью и автоматом расширят поле. Но числа 0..9 будут сформатированы в двухсимвольное поле. По умолчанию, слева добиваются пробелы. С атрибутом ZEROFILL будет добиваться нулями.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 26-01-2016 09:47 » 

RXL, хм, то есть они (скобки и их содержимое) мне как бы и не нужны, получается так.
 Про типы я помню. Непонятно, зачем мне выравнивать число, даже в текстовом выводе, ведь я его тут же извлекаю, причём средствами библиотеки
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 26-01-2016 13:17 » 

Стандарт SQL...

Можешь забить на скобки для целых. Для CHAR и VARCHAR - это размер строки в символах (зависит от кодировки базы/таблицы/столбца). Для numeric и float/double - смотри в доку.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 27-01-2016 04:33 » new

понятно )
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines