Conceptos Sql
Para recuperar de nuestra tabla "libros" los registros que tienen precio mayor o igual a 20 y menor o igual a 40, usamos 2 condiciones unidas por el operador lógico "and":
select * from libros
where precio>=20 and precio<=40;
Podemos usar "between":
select * from libros
where precio between 20 and 40;
"between" significa "entre". Averiguamos si el valor de un campodado (precio) está entre los valores mínimo y máximo especificados (20 y 40 respectivamente).
Si agregamos el operador "not" antes de "between" el resultado se invierte.
Para recuperar los libros cuyo autor sea 'Paenza' o 'Borges' usamos 2 condiciones:
select * from libros
where autor='Borges' or autor='Paenza';
PODEMOS USAR "IN":
select * from libros
where autorin('Borges','Paenza');
Con "in" averiguamos si el valor de un campo dado (autor) está incluido en la lista de valores especificada (en este caso, 2 cadenas).
Para recuperar los libros cuyo autor no sea 'Paenza' ni 'Borges' usamos:
select * from libros where autor<>'Borges' and autor<>'Paenza';
También podemos usar "in" :
select * from libros
where autor not in ('Borges','Paenza');
Con "in"averiguamos si el valor del campo está incluido en la lista, con "not" antecediendo la condición, invertimos el resultado.
LIKE / NOT LIKE
Hemos realizado consultas utilizando operadores relacionales para comparar cadenas. Por ejemplo, sabemos recuperar los libros cuyo autor sea igual a la cadena "Borges":
select * from libros
where autor='Borges';
Los operadores relacionales nos permitencomparar valores numéricos y cadenas de caracteres. Pero al realizar la comparación de cadenas, busca coincidencias de cadenas completas.
Imaginemos que tenemos registrados estos 2 libros:
El Aleph de Borges;
Antologia poetica de J.L. Borges;
Si queremos recuperar todos los libros cuyo autor sea "Borges", y especificamos la siguiente condición:
select * from libros
where autor='Borges';sólo aparecerá el primer registro, ya que la cadena "Borges" no es igual a la cadena "J.L. Borges".
Esto sucede porque el operador "=" (igual), también el operador "<>" (distinto) comparan cadenas de caracteres completas. Para comparar porciones de cadenas utilizamos los operadores "like" y "not like".
Entonces, podemos comparar trozos de cadenas de caracteres para realizar consultas.Para recuperar todos los registros cuyo autor contenga la cadena "Borges" debemos tipear:
select * from libros
where autor like "%Borges%";
El símbolo "%" (porcentaje) reemplaza cualquier cantidad de caracteres (incluyendo ningún caracter). Es un caracter comodín. "like" y "not like" son operadores de comparación que señalan igualdad o diferencia.
Para seleccionar todos los libros quecomiencen con "A":
select * from libros
where titulo like 'A%';
Note que el símbolo "%" ya no está al comienzo, con esto indicamos que el título debe tener como primera letra la "A" y luego, cualquier cantidad de caracteres.
Para seleccionar todos los libros que no comiencen con "A":
select * from libros
where titulo not like 'A%';
Así como "%" reemplaza cualquier cantidad de caracteres, elguión bajo "_" reemplaza un caracter, es el otro caracter comodín. Por ejemplo, queremos ver los libros de "Lewis Carroll" pero no recordamos si se escribe "Carroll" o "Carrolt", entonces tipeamos esta condición:
select * from libros
where autor like "%Carrol_";
Si necesitamos buscar un patrón en el que aparezcan los caracteres comodines, por ejemplo, queremos ver todos los registros quecomiencen con un guión bajo, si utilizamos '_%', mostrará todos los registros porque lo interpreta como "patrón que comienza con un caracter cualquiera y sigue con cualquier cantidad de caracteres". Debemos utilizar "\_%", esto se interpreta como 'patrón que comienza con guión bajo y continúa con cualquier cantidad de caracteres". Es decir, si queremos incluir en una búsqueda de patrones los...
Regístrate para leer el documento completo.