Unidad IV : Consultas Simples


CONSULTAS SIMPLES

    El proceso más importante que podemos llevar a cabo en una base de datos es la consulta de los datos. De nada serviría una base de datos si no se puede consultar. Es además la operación que efectuaremos con mayor frecuencia. Para consultar la información SQL pone a nuestra disposición la sentencia SELECT.

La sentencia SELECT

    La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos. El formato de la sentencia select es:

SELECT [ALL|DISTINCT] <nombre_campo>

FROM <nombre_tabla>

WHERE <condición> [AND|OR]

[ORDER BY <nombre_campo> [ASC|DESC]

    Veamos por partes que quiere decir cada una de las partes que conforman la sentencia.

Sentencia

Significado

SELECT

Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección. 

  ALL

Indica que queremos seleccionar todos los valores.Es el valor por defecto y no suele especificarse casi nunca.

DISTINCT 

Indica que queremos seleccionar sólo los valores distintos.

FROM

Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista más de una tabla se denomina a la consulta "consulta combinada" o "join". En las consultas combinadas es necesario aplicar una condición de combinación a través de una cláusula WHERE.

WHERE

Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR.

ORDER BY

Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC (orden ascendente) y DESC (orden descendente). El valor predeterminado es ASC.

    Para formular una consulta a la tabla tCoches y recuperar los campos matricula, marca, modelo, color, número_ kilómetros, num_plazas debemos ejecutar la siguiente consulta. Los datos serán devueltos ordenados por marca y por modelo en orden ascendente, de menor a mayor.


SELECT matricula,  marca, modelo, color, número_kilómetros,
                num_plazas 
FROM tCoches
ORDER BY marca,modelo;

    La palabra clave FROM  indica que los datos serán recuperados de la tabla tCoches. Podriamos haber especificado más de una tabla, pero esto se verá en otro capítulo.  Tambien podríamos haber simplificado la consulta a través del uso del comodín de campos, el asterisco "*".


SELECT *
FROM tCoches
ORDER BY marca,modelo;

    El uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la tabla.

La cláusula WHERE

    La cláusula WHERE es la instrucción que nos permite filtrar el resultado de una sentencia SELECT.  Habitualmente no deseamos obtener toda la información existente en la tabla, sino que queremos obtener sólo la información que nos resulte útil es ese momento. La cláusula WHERE filtra los datos antes de ser devueltos por la consulta.

    En nuestro ejemplo, si queremos consultar un coche en concreto debemos agregar una cláusula WHERE. Esta cláusula especifica una o varias condiciones que deben cumplirse para que la sentencia SELECT devuelva los datos. Por ejemplo, para que la consulta devuelva sólo los datos del coche con matricula M-1525-ZA debemos ejecutar la siguiente sentencia:


SELECT matricula,  marca, modelo, color, número_kilómetros,
                num_plazas 
FROM tCoches
WHERE matricula = 'M-1525-ZA';

             Cuando en una cláusula where queremos incluir un tipo texto, debemos incluir el valor entre comillas simples.

    Además, podemos utilizar tantas condiciones como queramos, utilizando los operadores lógicos AND y OR . El siguiente ejemplo muestra una consulta que devolverá los coches cuyas matriculas sean M-1525-ZA o bien M-2566-AA.


SELECT
matricula, 
             marca,
             SELECT  matricula, modelo, color, numero_kilometros,
             num_plazas 
FROM tCoches
WHERE matricula = 'M-1525-ZA' 
        OR matricula = 'M-2566-AA' ;

    Además una condición WHERE puede ser negada a través del operador lógico NOT. La siguiente consulta devolverá todos los datos de la tabla tCohes menos el que tenga matricula M-1525-ZA.


SELECT
matricula,  marca, modelo, color, numero_kilometros,
             num_plazas 
FROM tCoches
WHERE NOT matricula = 'M-1525-ZA'  ;

    Podemos también obtener las diferentes marcas y modelos de coches ejecutando la consulta.


SELECT DISTINCT
marca,  modelo
FROM tCoches;

    La ver los valores distintos. En el caso anterior la palabra clave DISTINCT indica que sólo queremos los valores distintos del par formado por los campos marca y modelo.

La cláusula ORDER BY

    Como ya hemos visto en los ejemplos anteriores podemos especificar el orden en el que serán devueltos los datos a través de la cláusula ORDER BY.


SELECT matricula,  marca,  modelo, color, número_kilometros,
                num_plazas 
FROM tCoches
ORDER BY marca ASC,modelo DESC;

    Como podemos ver en el ejemplo podemos especificar la ordenación ascendente o descendente a través de las palabras clave ASC y DESC. La ordenación depende del tipo de datos que este definido en la columna, de forma que un campo numérico será ordenado como tal, y un alfanumérico se ordenará de la A a la Z, aunque su contenido sea numérico. De esta forma el valor 100 se devuelve antes que el 11.

    También podemos especificar el en la cláusula ORDER BY el índice numérico del campo dentro del la sentencia SELECT para la ordenación, el siguiente ejemplo ordenaría los datos por el campo marca, ya que aparece en segundo lugar dentro de la lista de campos que componen la SELECT.


SELECT matricula, marca, modelo, color,  numero_kilometros,
                num_plazas 
FROM tCoches
ORDER BY 2;


Comentarios

Entradas populares de este blog

Unidad X : UPDATE - DELETE

Unidad VII : USO DEL AS, UPPER Y LOWER