The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

SQL - Типы полей в MySQL (sql mysql howto)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: sql, mysql, howto,  (найти похожие документы)
Date: Mon, 23 Oct 2000 12:18:57 +0400 (MSD) From: MailList: Perl в примерах Subject: SQL - Типы полей в MySQL Типы полей в MySQL Николай Матковский (matkovsky@ukrpost.net) MySQL поддерживает большое количество типов полей, которые в общем можно поделить на три категории - числовые типы, типы дата/время и строковые. Ниже вы найдете короткие описания всех поддерживаемых MySQL типов и способы задания типов для полей в таблицах. В описаниях вы найдете некоторые символы, имеющие не менее символическое значение. Это M, который означает, что в указанном месте стоит максимальный размер значения поля, и D, указывающий (для числовых типов с плавающей точкой) количество разрядов, стоящих после точки, то есть длина дробной части числа. Квадратные собки ('[' и ']') указывют на то, что взятый в них параметр не является обязательным и может быть пропущен. В целом, объявление типа INT([M]) [UNSIGNED] [ZEROFILL] говорит о том, что при объявлении поля типа INT вы можете (но не должны) указать максимальный размер поля в скаобках после слова INT, а также написать параметры ZEROFILL UNSIGNED, о которых дальше. Вот перечисление всех типов: Целочисленные типы TINYINT[(M)][UNSIGNED][ZEROFILL] Наименьший целочисленный тип. Диапазон значений - -128..127 (в случае INSIGNED - 0..255) SMALLINT[(M)] [UNSIGNED] [ZEROFILL] Малый целый тип. Диапазон значений - -32768..32767 и соответственно 0..65535 для беззнакового целого. MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] Средний целый тип. Значения могут быть от -8388608 до 8388607 и от 0 до 16777215 при указании UNSIGNED. INT[(M)] [UNSIGNED] [ZEROFILL] (INTEGER[(M)] [UNSIGNED] [ZEROFILL]) Обычный целый тип. Значения - -2147483648..2147483647 и 0..4294967295 для беззнакового целого. BIGINT[(M)] [UNSIGNED] [ZEROFILL] Большой целочисленный тип. Значения лежат в пределах от -9223372036854775808 до 9223372036854775807 и от 0 до 18446744073709551615 для UNSIGNED. Впрочем, примите к сведению, что все арифметический действия производятся при помощи BIGINT со знаком, поэтому не следует пользоваться значениями, большими, чем 9223372036854775807. Типы чисел с плавающей точкой FLOAT(разрядность) [ZEROFILL] Число с плавающей точкой. Не может быть объявлено беззнаковым. Разрядность может быть <= 24 (чисел с низкой разрядностью) или от 25 до 53 (для чисел с двойной разрядностью). Аналогами этих двоих типов являются описанные ниже типа FLOAT и DOUBLE FLOAT[(M,D)] [ZEROFILL] Малое число с плавающей точкой. Разрядность не указывается - для этого типа она считается <= 24. Значения этого типа лежат в границах от -3.402823466E+38 до -1.175494351E-38, 0 и от 1.175494351E-38 до 3.402823466E+38. DOUBLE[(M,D)] [ZEROFILL] Простое число с плавающей точкой (с двойной размерностью). Значения - от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0 и от 2.2250738585072014E-308 до 1.7976931348623157E+308 Синонимами к DOUBLE являются REAL и DOUBLE PRECISION DECIMAL[(M[,D])] [ZEROFILL] Unpacked число с плавающей точкой. Unpacked означает то, что значение хранится в строке, по символу на каждый разряд числа, точку и знак. Диапазон значений этого типа такой же, как и у DOUBLE. Синоним к DECIMAL - NUMERIC. Типы даты/времени DATE Тип для хранения даты. Допустимые значения - от '1000-01-01' до '9999-12-31'. Дата хранится в виде YYYY-MM-DD. DATETIME Комбинация даты и времени. Допустимые значения - от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. Данные зранятся в виде 'YYYY-MM-DD HH:MM:SS'. TIMESTAMP[(M)] Еще одна дата. Значения лежат в диапазоне от '1970-01-01 00:00:00' до некоторого времени в 2037-году. В зависимости от значения параметра M формат хранения данных может быть YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD (значения 14, 12, 8 или 6). По умолчанию в поля такого типа значения заносятся с текщими датой и временем. TIME Время. Значения могут лежать в границах '-838:59:59'..'838:59:59' и представляются в формате 'HH:MM:SS'. YEAR[(2 или 4)] Хранит год. В зависимости от значения указанного в скобках (по умолчанию - 4), год хранится в виде YYYY или YY. Строковые типы [NATIONAL] CHAR(M) [BINARY] Строка, всегда имеющая длину M (в случае, когда занесенное значение короче, оно дополняется пробелами). M может лежать в пределах от 1 до 255. Приставка NATIONAL указывет на необходимость использования кодовой таблицы, используемой по умолчанию. [NATIONAL] VARCHAR(M) [BINARY] Аналогично посленему, за исключением того, что длина значения может быть произвольной (от 1 до 255 :), а все пробелы в конце строки удалаются. TINYBLOB (TINYTEXT) Тип BLOB или TEXT, длиной от 1 до 255 символов. BLOB (TEXT) Тип BLOB или TEXT, длиной от 1 до 65535 символов. MEDIUMBLOB (MEDIUMTEXT) Тип BLOB или TEXT, длиной от 1 до 16777215 символов. LONGBLOB (LONGTEXT) Тип BLOB или TEXT, длиной от 1 до 4294967295 символов. Дополнительные типы ENUM('значение1', 'значение2', ...) Перечислимый тип - тип, значения которого строго определены (списком в скобках). Допустимое количество значений - от 1 до 65535. SET('значение1', 'значение2', ...) Набор (множество) - тип, значения которого могут быть множествами, состоящими из элементов, указаных в скобках. Каждое множество может иметь не больше 64 элементов.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Владимир (??), 02:57, 20/01/2007 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    помогите, пожалуйста. А какой тип поля необходимо выставить в MySQL, чтобы туда можно было заносить фотографии или как это можно сделать? У меня форум, текст записывается и там тип поля TEXT... А если поле для вставки фото? Какой тип?
     
     
  • 2.2, JIP (??), 07:01, 20/01/2007 [^] [ответить]    [к модератору]
  • +/
    >помогите, пожалуйста. А какой тип поля необходимо выставить в MySQL, чтобы туда
    >можно было заносить фотографии или как это можно сделать? У меня
    >форум, текст записывается и там тип поля TEXT... А если поле
    >для вставки фото? Какой тип?


    а зачем фото кидать в БД? проще хранить ссылки на мультимедийные файлы, которые apache будет выдавать при пользовательском запросе (файлы хранить за пределами БД). часто такие советы дают в статьях по оптимизации работы СУБД (может быть я неправильно понял вопрос?)

     
  • 1.3, VmL (?), 00:47, 27/02/2007 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Согласен с JIP, но уж если совсем приспичило, то в BINARY тип поля...
     
  • 1.5, Вовка (??), 00:50, 03/12/2008 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Маловато будет
     
  • 1.6, Май (?), 17:52, 28/12/2008 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    > Согласен с JIP, но уж если совсем приспичило, то в BINARY тип поля...

    binary мало, обычно если кидают, то в blob или mediumblob.

    Хотя это лишняя нагрузка на сервер, лучше хранить в бд ссылки на файлы.

     
  • 1.7, asd (??), 17:03, 27/04/2010 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Добрый вечер! ПОмогите ,пожалуйста. Чтобы в форму вставить чекбокс, мне нужно логический тип (результат true или false).В Mysql этот тип кажется нету. Какой тип можно  вставить?
     
     
  • 2.9, Fox (??), 01:07, 28/06/2010 [^] [ответить]    [к модератору]  
  • +/
    возьми unsigned tinyint c длинной значения 1 и при проверке проверяй не на true/false, а на 1/0 соответственно, т.е заменяя true на 1, а false на 0. (это как один из вариантов)
     
  • 2.10, Marker (?), 01:26, 07/07/2010 [^] [ответить]    [к модератору]  
  • +/
    Для этого существуют типы BOOL и BIT
     
     
  • 3.11, Savl (?), 16:41, 30/11/2010 [^] [ответить]    [к модератору]  
  • +/
    BOOL автоматически преобразуется в TINYINT(1)
     
  • 1.12, lady (?), 23:14, 15/03/2011 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Здравствуйте,спасибо большое за статью,очень хорошо и понятно написано,но я столкнулась со следующей проблемой:

    "Все данные  должны храниться в реляционной базе данных  MySQL
    Связанные файлы – файлы, необходимые для работы с данной задачей. Выбираются с жесткого диска пользователя или из библиотеки документов узла."

    Следовательно мне нужно как-то разместить сами эти файлы в поле,это возможно?

     
     
  • 2.13, IIIypuk (?), 02:11, 12/03/2012 [^] [ответить]    [к модератору]  
  • +/
    Написано же:
    ...файлы, необходимые для работы с данной задачей. Выбираются с жесткого диска...

    P.S. Спасибо за статью!

     
  • 1.14, Vova (??), 12:35, 28/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Какой тип поля для www и E-Mal
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру
    Hosting by Ihor