Archivo de la etiqueta: SQL

Seleccionar a travez de SQL un valor NULL desde un Campo DATE

Una consulta similar puede ser usada para determinar la edad que tenía una mascota cuando falleció. Para determinar que animalitos ya fallecieron, la condición es que el valor en el campo fallecimiento no sea nulo (NULL). Entonces, para los registros con valor no-nulo, calculamos la diferencia entre los valores fallecimiento y nacimiento.

mysql> SELECT nombre, nacimiento, fallecimiento,
-> (YEAR(fallecimiento) - YEAR(nacimiento)) 
-> - (RIGHT(fallecimiento,5) < RIGHT(nacimiento,5))
-> AS edad FROM mascotas WHERE fallecimiento IS NOT NULL;
+--------+------------+---------------+------+
| nombre | nacimiento | fallecimiento | edad |
+--------+------------+---------------+------+
| Kaiser | 1989-08-31 | 1997-07-29    |    7 |
+--------+------------+---------------+------+
1 row in set (0.01 sec)

La consulta usa fallecimiento IS NOT NULL, en vez de falleciimiento < > NULL porque NULL es una valor especial. Esto será explicando más a detalle posteriormente.

Búsqueda de patrones (like – not like)

Existe un operador relacional que se usa para realizar comparaciones exclusivamente de cadenas, “like” y “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';

El operador igual (“=”) nos permite comparar cadenas de caracteres, pero al realizar la comparación, busca coincidencias de cadenas completas, realiza una búsqueda exacta.

Imaginemos que tenemos registrados estos 2 libros:

 "El Aleph", "Borges";
 "Antologia poetica", "J.L. Borges";

Si queremos recuperar todos los libros de “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 que comiencen con “M”:

 select *from libros
  where titulo like 'M%';

Note que el símbolo “%” ya no está al comienzo, con esto indicamos que el título debe tener como primera letra la “M” y luego, cualquier cantidad de caracteres.

Para seleccionar todos los libros que NO comiencen con “M”:

 select *from libros
  where titulo not like 'M%';

Así como “%” reemplaza cualquier cantidad de caracteres, el guión bajo “_” reemplaza un caracter, es 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_";

Otro caracter comodín es [] reemplaza cualquier carácter contenido en el conjunto especificado dentro de los corchetes.

Para seleccionar los libros cuya editorial comienza con las letras entre la “P” y la “S” usamos la siguiente sintaxis:

 select titulo,autor,editorial
  from libros
  where editorial like '[P-S]%';

Ejemplos:

... like '[a-cf-i]%': busca cadenas que comiencen con a,b,c,f,g,h o i;
... like '[-acfi]%': busca cadenas que comiencen con -,a,c,f o i;
... like 'A[_]9%': busca cadenas que comiencen con 'A_9';
... like 'A[nm]%': busca cadenas que comiencen con 'An' o 'Am'.

El cuarto caracter comodín es [^] reemplaza cualquier caracter NO presente en el conjunto especificado dentro de los corchetes.

Para seleccionar los libros cuya editorial NO comienza con las letras “P” ni “N” tipeamos:

 select titulo,autor,editorial
  from libros
  where editorial like '[^PN]%';

“like” se emplea con tipos de datos char, nchar, varchar, nvarchar o datetime. Si empleamos “like” con tipos de datos que no son caracteres, SQL Server convierte (si es posible) el tipo de dato a caracter. Por ejemplo, queremos buscar todos los libros cuyo precio se encuentre entre 10.00 y 19.99:

 select titulo,precio from libros
  where precio like '1_.%';

Queremos los libros que NO incluyen centavos en sus precios:

 select titulo,precio from libros
  where precio like '%.00';

Para búsquedas de caracteres comodines como literales, debe incluirlo dentro de corchetes, por ejemplo, si busca:

... like '%[%]%': busca cadenas que contengan el signo '%';
... like '%[_]%': busca cadenas que contengan el signo '_';
... like '%[[]%': busca cadenas que contengan el signo '[';

Iniciación al Lenguaje SQL


El lenguaje SQL

SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos informática. El nombre “SQL” es una abreviatura de Structured Query Languaje (Lenguaje de consultas estructurado). Como su propio nombre indica, SQL es un lenguaje informático que se puede utilizar para interaccionar con una base de datos y más concretamente con un tipo especifico llamado base de datos relacional.

SQL es a la vez un lenguaje fácil de aprender y una herramienta completa para gestionar datos. Las peticiones sobre los datos se expresan mediante sentencias, que deben escribirse de acuerdo con unas reglas sintácticas y semánticas de este lenguaje.

Su aprendizaje no solo sirve para esta aplicación sino , también, para todas las existentes en el mercado que soporten este lenguaje ya que es un lenguaje estándar por haberse visto consolidado por el Instituto Americano de Normas (ANSI) y por la Organización de Estándares Internacional (ISO).

La información aquí resumida del lenguaje puede ser ampliada con multitud de libros existentes en el mercado, todos con las siglas “SQL”.

El SQL que se utilizará en esta aplicación cumple estrictamente con las especificaciones de Microsoft ® Open Database Connectivity (ODBC) y a continuación se podrán ver las características propias para el acceso a ficheros en el formato Paradox ® de Borland.

Entren aqui: http://www.pablin.com.ar/computer/cursos/varios/sql1.htm