Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Строчный тип данных в MySQL

Раздел: 

В MySQL существует несколько базовых типов данных. В данной статье будет подробно рассмотрен строчный тип данных. Мы разберем различные способы его задания и подводные камни, которые могут встретиться при дальнейшей работе с базами данных.

Как задаются строки?

Чтобы сервер при обработке кода опознал в коде строку достаточно просто несколько произвольных символов заключить в кавычки.

Обычно не имеет значения какого рода кавычки будут использованы: одинарные («’») или двойные («”»), но из этого правила есть исключение — стандарт ANSI SQL допускает использование исключительно одинарных кавычек.

Какие есть возможности для форматирования строк?

Для удобства представления информации в строках существует ряд специальных символов, которые позволяют форматировать данные непосредственно внутри строки. К ним относят:

  • \’ — экранируя кавыку обратным слешем мы можем вывести ее внутри строки, не разрывая саму переменную
  • \” — действие аналогично предыдущему спецсимволу
  • \n — перенос строки
  • \b — перевод символа на одну позицию назад
  • \t - табуляция
  • \\ - позволяет вывести внутри строки обратный слеш
  • \% - дает возможность вывести символ процентов просто как символ, а не как групповой символ со специальным значением
  • \’_’ - дает возможность вывести символ нижнего подчеркивания просто как символ, а не как групповой символ со специальным значением

Помимо уже рассмотренного способа с экранированием символов кавычек обратным слешем существует еще одна возможность внедрить кавычку внутрь строки: для одинарной кавычки это последовательность символов `'''; для двойной `""'.

Эти последовательности символов отлично распознаются системой и не требуют специальной предварительной обработки, по типу экранирования обратным слешем.

А теперь то же самое в примерах:

mysql> SELECT 'test', '"test"', '""test""', 'te''st', '\'test';
+-------+---------+-----------+--------+--------+
| test  | "test"  | ""test""  | te'st  | 'test  |
+-------+---------+-----------+--------+--------+
 
mysql> SELECT "test", "'test'", "''test''", "te""st", "\"test";
+-------+---------+-----------+--------+--------+
| test  | 'test'  | ''test''  | te"st  | "test  |
+-------+---------+-----------+--------+--------+
 
mysql> SELECT "Line\nOne\nTwo";
+--------------------+
| Line
One
Two |
+--------------------+

Помимо вышеперечисленных возможностей использования в строках спецсимволов, в API часто существуют свои символы-заменители форматирования текста, для большего удобства разработчиков.