* Типове данни в MySQL
Публикувано на 01 февруари 2009 в раздел Бази от Данни.
Въпреки, че SQL би трябвало да е унифициран език, всяка система за управление на бази данни се различава от другите. Много рядко се спазва истинския ANSI стандарт на SQL и често има съществени различия.
За целта на упражнения по бази данни би трябвало да се фокусираме върху стандарта. Въпреки това избрах MySQL, тъй като тази система за управление на бази данни е изключително широко разпространена и е безплатна. Така ще бъде възможно примерите да се прилагат директно в работна среда.
Нека разгледаме типовете данни по категории:
1. Цели числа:
a) TINYINT(length) – цяло число в интервала [-128, 127]. Ако се добави параметър unsigned става от [0, 255].
б) SMALLINT(length) – цяло число в интервала [-32768, 32767] или [0, 65535] като unsigned.
в) MEDIUMINT(length) – цяло число в интервала [-8388608, 8388607] или [0, 16777215] като unsigned.
г) INT(length) – цяло число в интервала [-2147483648, 2147483647] или [0, 4294967295] като unsigned.
д) BIGINT(length) – цяло число в интервала [-9223372036854775808, 9223372036854775807] или [0, 18446744073709551615] като unsigned.
е) BIT – приема две стойности – 0 или 1.
При всички целочислени типове параметърът length е незадължителен. Чрез него можете да ограничите броя на цифрите на числото.
2. Числа с плаваща запетая:
a) FLOAT(length, dec) – малко число с плаваща запетая. Параметърът length ограничава броя на цифрите общо, а dec ограничава броя на цифрите след десетичната запетая.
б) DOUBLE(length, dec) – същото като FLOAT, но с двойна точност.
в) DECIMAL(lenght, dec) – това на практика е DOUBLE число записано в текстови вид (на всяка цифра отговаря символ), което позволява точното запазване на десетичната запетая. Използва се най-често при работа с пари и стойности, които трябва да запазят стойността си непроменена.
3. Текстови типове:
а) CHAR(length) – Съхранява символи от ASCII таблицата с фиксирана дължина. Параметърът length може да бъде от 0 до 255 (по позразбиране 1).
б) VARCHAR(length) – Същото като CHAR, но символите са с променлива дължина. Параметърът length указва максималния брой символи. По този начин се получава икономия на обема информация, защото когато има незаети символи, то за тях не се резервира пространство.
в) TINYTEXT – 255 последователни символа (в общи линии по-бавен еквивалент на CHAR(255)).
г) TEXT – 65535 символа.
д) MEDIUMTEXT – 16777215 символа.
е) LONGTEXT – 4294967295 символа.
ж) BLOB – Същото като TEXT, но различава малки от големи букви при сортиране и сравнение.
з) MEDIUMBLOB – Същото като MEDIUMTEXT, но различава малки от големи букви при сортиране и сравнение.
и) LONGBLOB – Същото като LONGTEXT, но различава малки от големи букви при сортиране и сравнение.
4. Типове за дата и време:
а) DATE – Дата във формат YYYY-MM-DD.
б) DATETIME – Дата и време във формат YYYY-MM-DD HH:MM:SS.
в) TIMESTAMP – Дата и време във формат YYYYMMDDHHMMSS.
г) TIME – Време във формат HH:MM:SS.
5. Други типове данни:
а) ENUM(„o1″,“o2″, …) – Изброим тип данни. Записва се само една стойност от изброените. Може да има максимум 65535 различни стойности.
б) SET(„o1″,“o2″, …) – Също като enum е изброим тип данни, но позволява да се записват повече от една стойност в клетка на таблица (това всъщност е единствения тип данни, които позволява това). Може да съдържа максимум 64 елемента.
4 коментара за “Типове данни в MySQL”
Trackback URI | RSS за коментарите
Пусни коментар
Категории
- Бази от Данни (39)
- Вероятности (30)
- История (14)
- Кучета (67)
- Лада Нива (91)
- Математика (159)
- Методика (52)
- Общи работи (107)
- ПИК-3 Java (38)
- Политика (40)
- Програмни Среди (1)
- ПТСК (37)
- С/C++ (45)
- Семейни (15)
- Физика (35)
- ХHTML/JS (25)
- Храна (11)
Нови
- Как да разрежем хляба?
- Здравей бебе!
- Какво означават метеорологичните кодове?
- Берра проправя пътеки
- Задача от YES
08 септември 2009 на 14:18
Мисля, че DECIMAL не е стринг – т.е. по 8 бита на символ, ами си е инт със запетая.
08 септември 2009 на 14:49
Прав си…
11 май 2010 на 20:41
Има грешка:
В „При всички целочислени типове параметъра length е незадължителен. Чрез него можете да ограничите броят на цифрите на числото.“ „параметър“ трябва да е с пълен член, а „брой“ с кратък :P
11 май 2010 на 21:40
Така е. Поправено…