lamers

Discussion in 'PHP' started by Zadoxlik, 25 Oct 2006.

  1. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Здравствуйте, Хакеры! Подскажите пожалуйста ламеру!

    Что означает в MySQL запись характеристики поля ввиде
    int(chislo) ?

    А конкретно интересует то, что помещается в скобках! Спасибо!
     
  2. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    ТИП(chislo) непременимо для типа int (то есть безполезно). на int выделяется всегда одно постоянное кол-во байт - 4. и изменение chislo ни на что не повлияет. другое дело varchar etc
     
  3. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Методом логического анализа мы с господином, коего называть не буду, пришли к выводу что запись не имеет смысла, т.к. память выделяется под поле одна и та же. Однако количественного анализа не проводилось, т.к. я ухожу спать. Завтра почитаю компетентнейшие овтеты, особливо будем ждать Егора и Тринукса.
    Спкойной всем ночи
     
    1 person likes this.
  4. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    кто же это???
    вот http://www.mysql.ru/docs/man/Storage_requirements.html int(число) вообще не определено. хотя бы потому что такие числа в формате "числа" хранить просто невозможно. другое дело что мускуль для арифметических операций использует длинную арифметику ;)
     
  5. PSalm69

    PSalm69 [ радиоверсия ]

    Joined:
    12 Jul 2005
    Messages:
    891
    Likes Received:
    300
    Reputations:
    530
    CREATE TABLE shop (
    article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
    dealer CHAR(20) DEFAULT '' NOT NULL,
    price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
    PRIMARY KEY(article, dealer));

    данные для примера будут такими:

    mysql> SELECT * FROM shop;

    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    | 0001 | A | 3.45 |
    | 0001 | B | 3.99 |
    | 0002 | A | 10.99 |
    | 0003 | B | 1.45 |
    | 0003 | C | 1.69 |
    | 0003 | D | 1.25 |
    | 0004 | D | 19.95 |
    +---------+--------+-------+

    максимальное значание равно 4 а минимальное кажись 2
    int(chislo) - это определить значение в столбце
    кажись так... если что не так будет самому интересно узнать правильный ответ =)
     
  6. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    2PSalm69 нет, это не так :)
     
  7. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    =)))) ну даете =))) может памяти и выделяется одинаковое количество, но вот индекс по полю строится совсем по другому принципу. Если поле индексируется (любым индексом), то намного оптимальнее использовать точное количество нулей. Чем меньше индекс, тем быстрее поиск по нему, это очевидно )
     
    _________________________
  8. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Пордон, а что значит одинаковое количество нулей? У меня в независимости от значния chisl'а в ячейку таблицы можно разместить число из одного и тогоже диапазона

    Если учитывать знаковый бит, то этот диапазон соствляет [-0x7FFFFFFF; 0x7FFFFFFF] =D
     
    #8 Zadoxlik, 26 Oct 2006
    Last edited: 26 Oct 2006
  9. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    http://www.sql.ru/docs/mysql/rus%5Fref/sql.shtml#Create
    Это как оно должно будет выглядеть, при выводе результатов запроса.
     
  10. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Т.е. это имеет смысл только при разрядности числа в 10ой системе счисления, меньшей чем та, что указана в скобках с пометкой ZEROFILL на поле? =()