Kaynağa Gözat

string and text types

me@helium 8 yıl önce
ebeveyn
işleme
98f7963d71
1 değiştirilmiş dosya ile 19 ekleme ve 1 silme
  1. 19 1
      ER-SQL.md

+ 19 - 1
ER-SQL.md

@@ -124,4 +124,22 @@
 | TIME                              |  Время в формате HH:MM:SS |
 | DATETIME                          |  Дата и время в формате YYYY-MM-DD HH:MM:SS |
 | TIMESTAMP                         | DATETIME, который автоматически заполняется временем сохранения или изменения записи |
-| YEAR                              | Год, в двух (YEAR(2)) или четырехцифровом (YEAR(4))формате |
+| YEAR                              | Год, в двух (`YEAR(2)`) или четырехцифровом (`YEAR(4)`) формате |
+
+### Строки и текст
+
+Все эти типы данных ведут себя схоже, однако отличаются по внутренней реализации. 
+
+| Тип                               | Описание                                                                      | Занимаемое местa (байт) |
+| --------------------------------- | ----------------------------------------------------------------------------- | ----------------------- |
+| CHAR(M)                           | Строка длиной до М (до 255)					            | M                       |
+| VARCHAR(M)                        | Строка длиной до М (до 65535)					            | Зависит от длины строки |
+
+В общем случае оба типа данных ведут себя одинаково, однако `VARCHAR` обрабатывается чуть медленнее, но экономичней по потреблению памяти. 
+Строки длиннее M обрезаются при сохранении в таблицу. **Суммарная длина всех полей типа VARCHAR** в записи не может превышать **65535**.
+Следовательно, эти два типа данных предназначены для хранения небольших строк типа логинов, паролей, имен, фамилий и тому подобного.
+
+### Текст
+
+Для хранения больших объемов текста существуют типы `TINYTEXT` (255), `TEXT` (65535), `MEDIUMTEXT` (16777216) и `LONGTEXT` (4294967296). Так же эти типы
+предоставляют возможности *полнотекстового поиска* средствами MySQL, в отличии от `CHAR` и `VARCHAR`.