Tutorial SQL

INICIO SQL Introducción a SQL Sintaxis SQL Seleccionar SQL SQL Seleccionar Distinto SQL donde SQL y, o no Orden SQL por Insertar SQL en Valores nulos de SQL Actualización SQL Eliminar SQL SQL Seleccionar parte superior SQL mínimo y máximo Recuento de SQL, Promedio, Suma SQL como Comodines de SQL SQL en SQL entre Alias ​​SQL Uniones SQL Combinación interna de SQL Unión izquierda de SQL Unión derecha de SQL Unión completa de SQL Unión automática de SQL Unión SQL Grupo SQL por SQL teniendo SQL existe SQL Cualquiera, Todo SQL Seleccionar en Insertar SQL en Seleccionar Caso SQL Funciones nulas de SQL Procedimientos almacenados de SQL Comentarios SQL Operadores SQL

Base de datos SQL

SQL Crear base de datos Base de datos de caída de SQL Base de datos de copia de seguridad de SQL Crear tabla SQL Tabla desplegable de SQL Tabla de modificación de SQL Restricciones SQL SQL no nulo SQL único Clave principal de SQL Clave foránea de SQL Comprobación SQL Valor predeterminado de SQL Índice SQL Incremento automático de SQL Fechas SQL Vistas SQL Inyección SQL Alojamiento SQL Tipos de datos SQL

Referencias SQL

Palabras clave de SQL Funciones MySQL Funciones del servidor SQL Funciones de MS Access Referencia rápida de SQL

Ejemplos SQL

Ejemplos SQL Cuestionario de SQL Ejercicios SQL Certificado SQL

Operadores SQL ANY y ALL


Los operadores SQL ANY y ALL

Los operadores ANYy ALLle permiten realizar una comparación entre un valor de una sola columna y un rango de otros valores.


El operador SQL ANY

El ANYoperador:

  • devuelve un valor booleano como resultado
  • devuelve VERDADERO si ALGUNO de los valores de la subconsulta cumple la condición

ANYsignifica que la condición será verdadera si la operación es verdadera para cualquiera de los valores en el rango.

CUALQUIER Sintaxis

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

Nota: El operador debe ser un operador de comparación estándar (=, <>, !=, >, >=, < o <=).


El operador SQL ALL

El ALLoperador:

  • devuelve un valor booleano como resultado
  • devuelve VERDADERO si TODOS los valores de la subconsulta cumplen la condición
  • SELECTse usa con declaraciones WHEREyHAVING

ALLsignifica que la condición será verdadera solo si la operación es verdadera para todos los valores en el rango. 

ALL Sintaxis con SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ALL Sintaxis con WHERE o HAVING

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

Nota: El operador debe ser un operador de comparación estándar (=, <>, !=, >, >=, < o <=).


Base de datos de demostración

A continuación se muestra una selección de la tabla "Productos" en la base de datos de ejemplo de Northwind:

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

Y una selección de la tabla "Detalles del pedido" :

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


Ejemplos de SQL ANY

La siguiente instrucción SQL enumera el Nombre del producto si encuentra CUALQUIER registro en la tabla Detalles del pedido que tenga una Cantidad igual a 10 (esto devolverá VERDADERO porque la columna Cantidad tiene algunos valores de 10):

Ejemplo

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

La siguiente instrucción SQL enumera el Nombre del producto si encuentra CUALQUIER registro en la tabla Detalles del pedido que tenga una Cantidad superior a 99 (esto devolverá VERDADERO porque la columna Cantidad tiene algunos valores superiores a 99):

Ejemplo

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

La siguiente instrucción SQL enumera el Nombre del producto si encuentra CUALQUIER registro en la tabla Detalles del pedido que tenga una Cantidad superior a 1000 (esto devolverá FALSO porque la columna Cantidad no tiene valores superiores a 1000):

Ejemplo

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

SQL TODOS Ejemplos

La siguiente instrucción SQL enumera TODOS los nombres de productos:

Ejemplo

SELECT ALL ProductName
FROM Products
WHERE TRUE;

La siguiente instrucción SQL enumera el Nombre del producto si TODOS los registros en la tabla Detalles del pedido tienen una Cantidad igual a 10. Por supuesto, esto devolverá FALSO porque la columna Cantidad tiene muchos valores diferentes (no solo el valor de 10):

Ejemplo

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