Beruflich Dokumente
Kultur Dokumente
En SQL, hay dos usos de la palabra clave IN, y esta sección introduce aquél
relacionado con la cláusula WHERE. Cuando se lo utiliza en este contexto,
sabemos exactamente el valor de los valores regresados que deseamos ver para
al menos una de las columnas. La sintaxis para el uso de la palabra clave IN es la
siguiente:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1', ''valor2', ...);
El número de valores en los paréntesis pueden ser uno o más, con cada valor
separado por comas. Los valores pueden ser números o caracteres. Si hay sólo
un valor dentro del paréntesis, este comando es equivalente a
Por ejemplo, podríamos desear seleccionar todos los registros para los negocios
de Los Ángeles y San Diego en la Tabla Store_Information,
Tabla Store_Information
Ingresamos,
SELECT *
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');
Resultado:
Like la sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Aquí hay algunos ejemplos que muestran diferentes operadores LIKE con los comodines '%' y '_':
WHERE CustomerName LIKE 'a%' Finds any values that start with "a"
WHERE CustomerName LIKE '%a' Finds any values that end with "a"
WHERE CustomerName LIKE Finds any values that have "or" in any position
'%or%'
WHERE CustomerName LIKE '_r%' Finds any values that have "r" in the second position
WHERE CustomerName LIKE Finds any values that start with "a" and are at least 3 characters
'a_%_%' in length
WHERE ContactName LIKE 'a%o' Finds any values that start with "a" and ends with "o"
Base de datos de demostración
A continuación, se muestra una selección de la tabla "Clientes" en la base
de datos de muestra de Northwind:
4 Around the Horn Thomas Hardy 120 Hanover London WA1 1DP UK
Sq.
Ejemplo
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Ejemplo
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
La siguiente declaración SQL selecciona a todos los clientes con un nombre
de cliente que tienen "o" en cualquier posición:
Ejemplo
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
Ejemplo
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Ejemplo
SELECT * FROM Customers
WHERE CustomerName LIKE 'a_%_%';
Ejemplo
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
La siguiente declaración SQL selecciona a todos los clientes con un nombre
de cliente que NO comienza con "a":
Ejemplo
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';
ENTRE la sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
1 Chais 1 1 10 boxes x 20 18
bags
2 Chang 1 1 24 - 12 oz 19
bottles
3 Aniseed Syrup 1 2 12 - 550 ml 10
bottles
ENTRE EJEMPLO
La siguiente declaración SQL selecciona todos los productos con un precio
ENTRE 10 y 20:
Ejemplo
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
NO ENTRE Ejemplo
Para mostrar los productos fuera del rango del ejemplo anterior, use NO
ENTRE:
Ejemplo
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
ENTRE con el ejemplo IN
La siguiente declaración SQL selecciona todos los productos con un precio
ENTRE 10 y 20. Además; No muestre productos con una CategoryID de 1,2
o 3:
Ejemplo
SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);
Ejemplo
SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di
Giovanni'
ORDER BY ProductName;
Ejemplo
SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella
di Giovanni'
ORDER BY ProductName;
Tabla de muestra
A continuación se muestra una selección de la tabla "Pedidos" en la base de
datos de ejemplo de Northwind:
10248 90 5 7/4/1996 3
10249 81 6 7/5/1996 1
10250 34 4 7/8/1996 2
10251 84 3 7/9/1996 1
10252 76 4 7/10/1996 2
Ejemplo
SELECT * FROM Orders
WHERE OrderDate BETWEEN #01/07/1996# AND #31/07/1996#;
O:
Ejemplo
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
Cualquier sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name FROM table_name WHERE condition);
ALL Sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name FROM table_name WHERE condition);
1 Chais 1 1 10 boxes x 20 18
bags
2 Chang 1 1 24 - 12 oz 19
bottles
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
Ejemplo
SELECT ProductName
FROM Products
WHERE ProductID
= ANY (SELECT ProductID FROM OrderDetails WHEREQuantity = 10);
Ejemplo
SELECT ProductName
FROM Products
WHERE ProductID
= ANY (SELECT ProductID FROM OrderDetails WHEREQuantity > 99);
Ejemplo de SQL ALL
El operador ALL devuelve VERDADERO si todos los valores de subconsulta
cumplen la condición.
Ejemplo
SELECT ProductName
FROM Products
WHERE ProductID
= ALL (SELECT ProductID FROM OrderDetails WHEREQuantity = 10);
select nombre, edad from Jugadores where NomEquipo in(select Nombre from Equipos
where titulos=2);
Esto nos da el nombre y edad de los jugadores cuyos equipos tengan dos titulos.
Primero se resuelve la subconsulta o consulta anidada dando los nombres de los
aquipos que tienen dos titulos y luego este dato se compara con la tabla jugadores
resolviendo la otra consulta.
Hay problemas con ellas porque son lentas al tener que resolver una por una cada
consulta, por eso se recomienda usar consultas multitabla que hacen la consulta
directamente en mas de una tabla a la vez.
Multitabla seria algo asi..
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20
Soluciones
MySQL
servidor SQL
MS Access
Oráculo
SQL JOIN
Una cláusula JOIN se utiliza para combinar filas de dos o más tablas, en
función de una columna relacionada entre ellas.
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20