SQL Урок 2. Условие.

SQL   31 марта 2012  Автор статьи:  

В данной статье мы разберем как правильно составлять условие для оператора WHERE. В SQL выражения, которые возвращают истину или ложь называют также предикаты. Условия делятся на простые и сложные. Простые состоят из одного выражения, например, Age > 18, а сложные являются комбинацией простых. Сложные предикаты составляют с помощью AND, OR и NOT, аналогичных таким же операциям из алгебры логики. Для конкретизации порядка выполнения операций можно использовать скобки. Условия возвращают три типа значений:

  1. TRUE (истина)
  2. FALSE (ложь)
  3. UNKNOWN (неизвестное значение)

Операции сравнения:

  • <
  • >
  • >=
  • <=
  • <>
  • =

Понятно, что типы данных сравниваются как и в других языках программирования. Таким образом числа сравниваются как в алгебре. Строки сравниваются по-буквенно, буква считается меньше другой буквы, если она идет раньше в алфавите. Время (DateTime) сравнивается в хронологическом порядке. Для примера выберем тех студентов, возраст которых больше 18 лет с именами Vladimir или Alex.

SELECT * FROM Student WHERE ((Age > 18) AND ((Name='Alex') OR (Name='Vladimir'))

Предикат BETWEEN проверяет находится ли значение внутри какого — то диапазона:

Имя поля [NOT] BETWEEN начальное значение AND конечное значение

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

SELECT * FROM Student WHERE Age BETWEEN 18 and 21

Для того, чтобы проверить находится ли запись в каком — то подмножестве используют IN:

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

Для того, чтобы выбрать студентов в возрасте 18 и 21, можно было использовать следующий запрос:

SELECT * FROM Student WHERE Age IN (18,21)

Выберем тех студентов, которые являются одногодками со студентами, которых зовут Alex.

SELECT * FROM Student WHERE Age IN ( SELECT Age From Student WHERE Name='Alex')

Для того, чтобы сравнить строку с некоторым шаблоном используют LIKE:

название поля LIKE шаблон [ESCAPE символ]

Для составления шаблонов используются два специальных символа:

  • «_» — любой 1 символ
  • «%» — любая последовательность символов любой длины, включая нулевую.

Для того, чтобы выбрать студентов, имена которых начинаются на ‘A’ можно применить следующий запрос:

SELECT * FROM Student WHERE Name LIKE 'A%'

Если строка содержит специальные символы, то необходимо явно указать в каком месте считать его как просто символ, а в каком как специальный. Для этого служит ESCAPE. Символ который будет стоять после ESCAPE будет считаться управляющим символом и специальный символ стоящий после него будет трактоваться как обычный. Допустим в нашей базе данных в поле Name записано Имя_Отчество, тогда для того чтобы выбрать всех студентов у которых имя и отчество начинается на ‘A’ будем использовать следующий код:

SELECT * FROM Student WHERE Name LIKE 'A%#_A%' ESCAPE #

В данном примере «#» будет считаться управляющим символом и «_», которое стоит сразу после него будет считаться за обычный символ. Для проверки наличие или отсутствия значения в поле используют оператор IS:

имя столбца IS [NOT] NULL

Научиться программировать

  • на Delphi

  • на Java

  • на C++