Skip to content

Latest commit

 

History

History
126 lines (69 loc) · 9.82 KB

File metadata and controls

126 lines (69 loc) · 9.82 KB

Через оператор SELECT можно выводить данные не только из таблиц базы данных, но и произвольные строки, числа, даты и т.д. Для вывода всех полей из определённой таблицы используется символ *. F. E. Select from (Table_name)

Вывод данных из определённых колонок таблицы

Если необходимо вывести информацию только по определённым столбцам таблицы, а не всю сразу, то это можно сделать, перечисляя названия столбцов через запятую:

SELECT member_id, member_name FROM FamilyMembers

Псевдонимы

В случае, если мы хотим вывести какие-то столбцы таблицы, но чтобы в итоговой выборке они были названы иначе, мы можем использовать псевдонимы (их также называют алиасами).

Их синтаксис достаточно простой, мы должны использовать оператор AS. Как в примере ниже:

SELECT member_id, member_name AS Name FROM FamilyMembers

Псевдонимы могут содержать до 255 знаков (включая пробелы, цифры и специальные символы).

Литерал — это указанное явным образом фиксированное значение, например, число 12 или строка 'SQL'.

Основными типами литералов в SQL являются:

  • строковый
  • числовой
  • логический
  • NULL
  • литерал даты и времени

Строковые литералы

Строка — это последовательность символов, заключённых в одинарные (') или двойные (") кавычки. Например, 'это строка' и "это строка".

Строки могут содержать специальные последовательности символов, начинающиеся с "" (экранирующий символ). Они нужны для того, чтобы СУБД придала обычным символам (буквам и другим знакам) новое особое значение. Например, последовательность "\n" буквально означает "перевод строки", а без предваряющего слеша это была бы обычная буква "n".

Строки могут содержать специальные последовательности символов, начинающиеся с "" (экранирующий символ). Они нужны для того, чтобы СУБД придала обычным символам (буквам и другим знакам) новое особое значение. Например, последовательность "\n" буквально означает "перевод строки", а без предваряющего слеша это была бы обычная буква "n".

Пример:

Числовые литералы

Пример:

Арифметические операторы

Для числовых литералов в SQL есть все привычные нам арифметические операторы.

Пример:

Литералы даты и времени

Значения даты и времени могут быть представлены в формате строки или числа.

Например, если мы хотим указать какую-то дату в запросе, то мы можем это сделать с помощью строки "1970-12-30", "19701230" или же числа 19701230. В обоих случаях эти значения будут интерпретироваться как дата «30 декабря 1970 года».

Пример:

Кроме самой даты, мы можем также указывать отдельно время или же всё вместе.

Логические литералы

Логический литерал - значения TRUE и FALSE, означающие истинность и ошибочность какого-либо утверждения. При интерпретации запроса, MySQL преобразует их в числа: TRUE и FALSE становятся 1 и 0 соответственно.

NULL

Значение NULL означает "нет данных", "нет значения". Оно нужно, чтобы отличать визуально пустые значения, такие как строка нулевой длины или "пробел", от того, когда значения вообще нет, даже пустого.

При составлении SQL запросов мы можем использовать встроенные функции. Например, если мы хотим вывести строку в верхнем регистре, то для этого мы можем использовать функцию UPPER.

Пример:

Встроенная функция

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

Виды функций:

Функции можно применять не только над литералами, но и над значениями, взятыми из таблицы. При этом функция выполняет преобразования для каждой строки отдельно.

Команда DISTINCT позволяет выбирать только уникальные значения из базы данных (то есть отсеивает дубли: к примеру, в таблице есть две Маши - тогда запрос выведет только первую).

Условный оператор WHERE

Ситуация, когда требуется сделать выборку по определённому условию, встречается очень часто. Для этого в операторе SELECT существует оператор WHERE, после которого следуют условия для ограничения строк. Если запись удовлетворяет этому условию, то попадает в результат, иначе отбрасывается.

Операторы сравнения

Чтобы сравнивать значения в SQL, используются специальные операторы. Они позволяют проверить, равны ли значения, больше ли одно другого, не равны ли они и так далее. Результатом сравнения может быть:

  • true (это то же самое, что 1)
  • false (то же, что 0)
  • NULL (если результат сравнения не определён, например, при сравнении с NULL)

Пример:

Результатом сравнения любого значения с NULL является NULL. Исключением является оператор эквивалентности.

Логические операторы

Логические операторы — это ваши помощники, когда нужно объединить несколько условий в одном SQL-запросе. С их помощью вы можете гибко выбирать только те строки, которые вам действительно нужны.

Примеры операторов:

AND — оба условия должны быть верны. OR — достаточно, чтобы выполнилось хотя бы одно условие. NOT — условие становится противоположным. XOR — это оператор, который помогает выбрать строки, где выполняется только одно из двух условий, но не оба сразу.

Приоритет логических операторов

Когда вы пишете запрос с несколькими условиями, SQL должен понять, в каком порядке их проверять. Это похоже на математику: сначала умножение, потом сложение. Для логических операторов в SQL тоже есть свой порядок — это называется приоритетом.

  • Сначала — NOT
  • Затем — AND
  • Потом — XOR
  • В конце — OR

Обратите внимание: оператор XOR есть не во всех базах данных. Если его нет, можно обойтись комбинацией AND и OR.