Páginas

domingo, 23 de enero de 2011

MySQL: Lenguaje de Consulta de datos DQL Parte I

Para esta nueva entrada vamos a hablar sobre el lenguaje de consulta de datos, vamos a mostrar varias consultas que podemos aplicar mediante este tipo de lenguaje.

DQL(): Data Query Lenguage o Lenguaje de Consulta de Datos, es el lenguaje que provee el estándar SQL para recuperar o mostrar los datos existentes dentro de nuestras bases de datos, esta conformado por las sentencias SELECT.

SELECT: Como lo indicamos este tipo de sentencias nos permite recuperar los datos de una base de datos, la sintaxis es sencilla.

SELECT campos FROM tabla;

Donde campos son los campos de la tabla que deseemos traer en nuestra consulta separados por coma (,) y tabla son las tablas de las que deseemos extraer los datos.

Cabe destacar que si en los campos se especifica el asterisco (*) se seleccionaran todos los datos de la tabla indicada, ejemplo:

SELECT * FROM tabla;


Fácil no??

Hasta acá hemos visto una sentencia SELECT simple donde traemos datos de una tabla especifica.


Dentro de las consultas SELECT tenemos cláusulas para colocar condiciones en nuestras consultas de maneras que podamos obtener los datos en forma que deseemos veamos cuales son:

a)ORDER BY: Esta cláusula nos sirve para indicar el orden en que se mostraran los datos obtenidos de nuestra consulta, la sintaxis es la siguiente:

SELECT campos FROM tabla ORDER BY campos_orden [DESC/ASC];

Donde campos_orden es por el campo que estará ordenado nuestro resultado, dando la prioridad a los primeros campos y separando cada uno por coma, [DESC/ASC] es si los queremos de forma ascendente o descendente, si indicamos el campo y no indicamos [DESC/ASC], el lo toma como si fuera ordenar ascendente por defecto,  veamos con un ejemplo:

Deseamos traer los datos personales de los trabajadores ordenados por el apellido:

SELECT nombre,apellido FROM empleado ORDER BY apellido,nombre;

En esta consulta Automáticamente al terminar de ordenar por apellido empieza a ordenar por el nombre por ejemplo si existen dos cuyo apellido sea PEREZ entonces ordena por el nombre

------------------------------
nombre       |  apellido|
-----------------------------
| ALBERTO | PEREZ  |
|PEDRO      | PEREZ   |
-------------------------------------

Aunque los dos tiene el mismo apellido el orden se da por el segundo campo indicado en nuestra consulta, como vimos no indicamos el DESC debido a que no es necesario cuando ordenamos de esta manera aunque hay autores que recomiendan usarlo.

b)WHERE: Esta cláusula nos permite ponerle condiciones a nuestras consultas, de manera de traer solo los campos deseados, su sintaxis es la siguiente:

SELECT campos FROM tabla WHERE campo1='condicion';

Donde campo1 es uno de los campos que estamos colocando como condicional para que nuestra consulta traiga los datos que deseamos, para hacer nuestras condiciones debemos tomar en cuenta los operadores de MySQL, veamos cuales son:

1.- = Signo igual: Lo usuamos en nuestras condiciones para indicar que traiga el dato mientras el valor en el campo sea igual a un valor dado ejemplo:

SELECT nombre FROM empleado WHERE apellido='perez';

El resultado de esta consulta serán todos los registros de nuestra tabla cuyo apellido sea PEREZ.

2.- <> Diferente: Este operador lo utilizamos para obtener los resultados mientras el valor en el campo sea diferente al valor dado, ejemplo:

SELECT nombre FROM empleado WHERE apellido<>'perez';

En este caso el resultado sera contrario al ejemplo anterior ya que solo obtendremos los registros que el apellido sea diferente de PEREZ.

3. > Mayor que: Este operador como su nombre lo indica lo utilizamos para traer datos que el valor del campo indicado sea mayor al campo dado ejemplo:

SELECT nombre,edad FROM empleado WHERE edad>17;

En este caso obtendremos a los empleados que sean mayor de edad, comparando que su edad sea mayor a 18 años.


4.- >= Mayor Igual que: Con este operador indicamos a nuestra condición que el resultado debe de ser mayor o igual a el valor establecido ejemplo

SELECT nombre,edad FROM empleado WHERE edad>=18;

En este caso también obtendríamos los empleados mayores de edad, pero como vemos el valor de la condición es algo diferente.

5.- < Menor que: Con este operador obtenemos los datos que son menores a un valor establecido, ejemplo:

SELECT nombre, edad FROM empleado WHERE edad<18;

Siguiendo con los ejemplo de las edades en este caso obtendríamos los empleados menores de edad.

6.- <= Menor Igual que: Es el inverso a Mayor igual que (>=), es decir mediante de este operador obtenemos los menores o iguales a cierta valor, ejemplo:

SELECT nombre,edad FROM empleado WHERE edad<=17;

7.-LIKE: Indicando este operador indicamos una coincidencia entre el campo y el valor indicado, para esto utilizamos los comodines (%), un pequeño ejemplo de esta sentencia:

SELECT * FROM table WHERE campo LIKE '%carlos%';

De esta manera obtendremos todos los campos donde en campo exista la palabra carlos por ejemplo:

juan carlos
carlos luis
jose carlos perez.

Este operador podemos utilizarlo en varios casos que presentamos a continuacion:

El comodin porcentaje (%): Lo utilizamos para indicar en el patron coincidencias de varios carácteres los posibles casos los mostramos a continuación:

1.- LIKE 'buscar%' : Del resultado de esta condición obtenemos todos los campos donde dentro del campo  "campo" exista la palabra buscar, seguido de cualquier cadena incluyendo también la palabra buscar, posibles resultados:

buscar.
buscar todo.
buscar_algo.

Entre otros posibles resultados.

2.-LIKE '%buscar': El resultado de esta condición es todos los campos indicados que terminen con la palabra buscar incluyendo también la misma palabra, por ejemplo:

buscar
vamos a buscar.

3.- LIKE '%buscar%': Con esta consulta obtenemos resultados que tengan una coincidencia con buscar bien sea al principio, entre cadenas o al final, incluyendo la misma palabra sola por ejemplo:

buscar.
buscar algo.
anda a buscar.
vamos a buscar algo.

Dentro del operador LIKE tambien tenemos otro comodin que mostraremos a continuación:


El comodin underscore (_) : Lo utilizamos en el operador LIKE para indicar que buscara en el patron las coincidencias con un solo carácter, a continuación los posibles casos.

1.-LIKE 'busca_': Los resultados solo seran los que contengan la palabra busca seguido de cualquier carácter, sin incluir la palabra busca solo por ejemplo:

buscar.
buscas

2.- LIKE '_ana': Los resultados seran los que coincidan con el patrón con cualquier primera letra, por ejemplo:

lana.
cana.

3.- LIKE 'ca_a': Con esta condición obtendremos los datos que coincidan con el patrón, siendo la tercera letra variable por ejemplo:

cama.
cana.
caza.
casa.

El operador LIKE es muy útil para trabajar nuestras consultas por medio de patrones y busquedas donde no conocemos completamente el dato.

Continuando con los operadores el siguiente es:

7.- El operador BETWEEN: Utilizado para indicar que el valor del campo este entre dos valores posibles, muy utilizado al momento de comparar  fechas, la sintaxis es la siguiente:

SELECT campo FROM tabla WHERE campo BETWEEN 'valor1' AND 'valor2';


Veamos un ejemplo:

SELECT nombre,fecha_ingreso FROMempleado WHERE fecha_ingreso BETWEEN '2010-01-10' AND '2010-01-20';

El resultado sera el nombre de los empleados y la fecha de ingreso que ingresaron entre el 10 de enero del 2010 y el 20 de enero del 2010, sencillo no??

8.-Operador AND: Lo utilizamos para unir dos o más condiciones, para que exista una respuesta se deben cumplir cada una de estas, la sintaxis es la siguiente:

SELECT campo FROM tabla WHERE campo1='condicion1' AND campo2='condicion2';

Si alguna de las condiciones no existe no retornara ningun valor esta consulta.

9.-Operador OR: Lo utilizamos para unir dos o mas condiciones, la diferencia con el AND es que para este caso al cumplirse alguna de las condiciones obtendremos un resultado, la sintaxis es la siguiente:

SELECT campo FROM tabla WHERE campo1='condicion1' OR campo2='condicion2';

Al existir coincidencia entre alguna de las condiciones e incluso ambas, la consulta retornara los resultados.

10.-Operador IN: Funciona al igual que el operador OR, pero indicando solo un campo, su sintaxis es la siguiente:

SELECT campo FROM tabla WHERE campo IN('valor1','valor2');

Seria equivalente a lo siguiente

SELECT campo FROM tabla WHERE campo='valor1' OR campo='valor2';


Estos son los operadores mas usados al momento de trabajar con MySQL, podemos obtener mas información sobre ellos en el manual oficial, cualquier otro que no se halla tomado en cuentan no duden en indicarlo.


Por esta entrada es todo, en la próxima continuaremos hablando sobre el Lenguaje de consulta de datos ya que es un tema bastante extenso, cualquier critica o sugerencia es aceptada, saludos

4 comentarios:

  1. Hola esta genial la entrada, muy completa y me despejo algunas dudas que tenía, ademas los ejemplos refuerzan muy bien lo que expones.

    Muy bien gracias, nos vemos.

    _____________________
    "Larga vida a la raza de bronce, muerte al linaje ario"
    By: MAX/MAGS

    ResponderEliminar
  2. gracias por el comentario amigo MAX, me alegra que te sirviera la información, saludos

    ResponderEliminar
  3. EXCELENTE, ME SIRVE MUXO AORA QUE ESTOI VIENDO ESOS TIPOS DE LUENGUAJES EN MI ESCUELA...

    ResponderEliminar
  4. exelente k buena informacion ami me sirvio de muxo pues estoi viendo ese tipo de lenguaje en la base de datos... despejaron muxa dudas que yo tenia.. muy buen trabajo

    ResponderEliminar