Учебник по SQL

SQL ГЛАВНАЯ Введение в SQL Синтаксис SQL Выбор SQL SQL выбрать отдельный SQL Где SQL И, Или, Не Порядок SQL по SQL вставить в Нулевые значения SQL Обновление SQL SQL Удалить SQL выберите вверху SQL Мин. и Макс. Количество SQL, среднее, сумма SQL нравится Подстановочные знаки SQL SQL входящий SQL между Псевдонимы SQL SQL-соединения Внутреннее соединение SQL Левое соединение SQL SQL правое соединение Полное соединение SQL Самостоятельное присоединение SQL Союз SQL Группа SQL по SQL Имея SQL существует SQL Любой, Все SQL выбрать в SQL вставить в выбор SQL-кейс Нулевые функции SQL Хранимые процедуры SQL Комментарии SQL SQL-операторы

База данных SQL

SQL Создать БД БД SQL Drop Резервная копия базы данных SQL Создание таблицы SQL Таблица удаления SQL Таблица изменений SQL Ограничения SQL SQL не нулевой Уникальный SQL Первичный ключ SQL Внешний ключ SQL Проверка SQL SQL по умолчанию Индекс SQL Автоматическое увеличение SQL Даты SQL Представления SQL SQL-инъекция Хостинг SQL Типы данных SQL

Ссылки на SQL

Ключевые слова SQL Функции MySQL Функции SQL-сервера Функции MS Access Краткое руководство по SQL

Примеры SQL

Примеры SQL SQL-викторина SQL-упражнения SQL-сертификат

SQL ANY и ВСЕ операторы


Операторы SQL ANY и ALL

Операторы ANYи ALLпозволяют выполнять сравнение между значением одного столбца и диапазоном других значений.


Оператор SQL ANY

Оператор ANY:

  • в результате возвращает логическое значение
  • возвращает TRUE, если ЛЮБОЕ из значений подзапроса удовлетворяет условию

ANY означает, что условие будет истинным, если операция истинна для любого из значений в диапазоне.

ЛЮБОЙ синтаксис

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Примечание . Оператор должен быть стандартным оператором сравнения (=, <>, !=, >, >=, < или <=) .


Оператор SQL ALL

Оператор ALL:

  • в результате возвращает логическое значение
  • возвращает TRUE, если ВСЕ значения подзапроса соответствуют условию
  • используется с операторами SELECT, WHEREиHAVING

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

ВСЕ Синтаксис с SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ВСЕ синтаксис с WHERE или HAVING

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Примечание . Оператор должен быть стандартным оператором сравнения (=, <>, !=, >, >=, < или <=) .


Демонстрационная база данных

Ниже приведен выбор из таблицы «Продукты» в образце базы данных «Борей»:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

И выборка из таблицы "OrderDetails" :

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ЛЮБЫЕ примеры

Следующий оператор SQL перечисляет ProductName, если он находит, что ЛЮБЫЕ записи в таблице OrderDetails имеют количество, равное 10 (это вернет TRUE, поскольку столбец Quantity имеет некоторые значения 10):

Пример

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

Следующий оператор SQL перечисляет ProductName, если он обнаруживает, что ЛЮБЫЕ записи в таблице OrderDetails имеют количество больше 99 (это вернет TRUE, поскольку в столбце Quantity некоторые значения больше 99):

Пример

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

Следующий оператор SQL перечисляет ProductName, если он обнаруживает, что ЛЮБЫЕ записи в таблице OrderDetails имеют количество больше 1000 (это вернет FALSE, поскольку в столбце Quantity нет значений больше 1000):

Пример

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

SQL ВСЕ примеры

В следующем операторе SQL перечислены ВСЕ названия продуктов:

Пример

SELECT ALL ProductName
FROM Products
WHERE TRUE;

Следующий оператор SQL перечисляет ProductName, если ВСЕ записи в таблице OrderDetails имеют количество, равное 10. Это, конечно, вернет FALSE, потому что столбец Quantity имеет много разных значений (не только значение 10):

Пример

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);