Литералы в SQL
На прошлом уроке выводили строку, а если говорить более формальным языком, то так называемый строковый литерал.
SELECT "Hello world"
Литерал — это указанное явным образом фиксированное значение, например, число 12 или строка "SQL".
Основными типами литералов в MySQL являются:
- строковый
- числовой
- логический
- NULL
- литерал даты и времени
Строковые литералы
Строка — это последовательность символов, заключённых в одинарные (') или двойные (") кавычки. Например, 'это строка' и "это строка".
Строки могут содержать специальные последовательности символов, начинающиеся с "\" (экранирующий символ). Они нужны для того, чтобы СУБД придала обычным символам (буквам и другим знакам) новое особое значение. Например, последовательность "\n" буквально означает "перевод строки", а без предваряющего слеша это была бы обычная буква "n".
-
SELECT "Строка Другая строка" as String
-
SELECT "Строка \n Другая строка" as String
Числовые литералы
Арифметические операторы
Для числовых литералов в SQL есть все привычные нам арифметические операторы:
Используя эти операторы можно построить любое арифметическое выражение, применяя стандартные правила арифметики.
Для примера:
SELECT (5 * 2 - 6) / 2 AS Result;
Литералы даты и времени
Значения даты и времени могут быть представлены в формате строки или числа.
Например, если мы хотим указать какую-то дату в запросе, то мы можем это сделать с помощью строки "1970-12-30", "19701230" или же числа 19701230. В обоих случаях эти значения будут интерпретироваться как дата «30 декабря 1970 года».
Ниже приведён пример использования литерала даты:
SELECT * FROM FamilyMembers WHERE birthday > '1970-12-30'
Можете не обращать внимание на то, что конкретно делает данный запрос, мы это рассмотрим попозже. Сейчас нам важен именно синтаксис того, как мы можем указывать дату в запросе.
Кроме самой даты, мы можем также указывать отдельно время или же всё вместе.
Логические литералы
Логический литерал - значения TRUE и FALSE, означающие истинность и ошибочность какого-либо утверждения. При интерпретации запроса, MySQL преобразует их в числа: TRUE и FALSE становятся 1 и 0 соответственно.
NULL
Значение NULL означает "нет данных", "нет значения". Оно нужно, чтобы отличать визуально пустые значения, такие как строка нулевой длины или "пробел", от того, когда значения вообще нет, даже пустого.