Учебник по MySQL

ГЛАВНАЯ СТРАНИЦА MySQL Введение в MySQL СУРБД MySQL

MySQL SQL

MySQL SQL ВЫБРАТЬ MySQL MySQL ГДЕ MySQL И, ИЛИ, НЕ MySQL ЗАКАЗАТЬ ПО MySQL ВСТАВИТЬ В Значения MySQL NULL ОБНОВЛЕНИЕ MySQL MySQL УДАЛИТЬ ПРЕДЕЛ MySQL MySQL МИН и МАКС MySQL COUNT, СРЕДНЯЯ, СУММА MySQL НРАВИТСЯ Подстановочные знаки MySQL MySQL IN MySQL МЕЖДУ Псевдонимы MySQL MySQL присоединяется ВНУТРЕННЕЕ СОЕДИНЕНИЕ MySQL ЛЕВОЕ СОЕДИНЕНИЕ MySQL MySQL ПРАВОЕ СОЕДИНЕНИЕ ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ MySQL Самостоятельное присоединение к MySQL СОЕДИНЕНИЕ MySQL MySQL СГРУППИРОВАТЬ ПО MySQL ИМЕЕТ MySQL СУЩЕСТВУЕТ MySQL ЛЮБОЙ, ВСЕ MySQL ВСТАВИТЬ ВЫБРАТЬ СЛУЧАЙ MySQL Нулевые функции MySQL Комментарии MySQL Операторы MySQL

База данных MySQL

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

Ссылки на MySQL

Типы данных MySQL Функции MySQL

Примеры MySQL

Примеры MySQL Викторина MySQL MySQL-упражнения

MySQL ЛЮБЫЕ и ВСЕ операторы


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

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


ЛЮБОЙ оператор

Оператор ANY:

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

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

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

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

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


ВСЕ Оператор

Оператор 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);