BASICO: SQL(I) – Para Iniciarse

 

Cuando empecé a estudiar programación, más en concreto el DAI, me picaba mucho el gusanillo de los lenguajes de programación, pero no con menos interés, también lo hacia el acceso a datos (BD, Ficheros…) Por ello, puse especial interés en adquirir, lo que yo creo que es, una buena base de SQL.

Desde hace menos tiempo, participo activamente en los foros de MSDN, y me he encontrado en innumerables ocasiones, con gente que desconoce totalmente el manejo o acceso a los datos.

Por otro lado, a través de Twitter, hemos mantenido activos varios debates muy interesantes:

  • Migraciones de VB6 a .NET
  • ¿Debe conocer el programador SQL?

Creo, que dentro de poco vamos a ver ambos debates a través de algún que otro evento, en el que espero participar de forma activa.

Bueno después de está introducción, me voy a permitir, escribir unas pequeñas líneas introductorias,(puesto que YO soy de los que piensan que el Programador debe conocer SQL) para ayudar a aquellos programadores que se quieren animar con SQL.

Voy a dividir el tema en 3 Partes:

  • Consulta de Datos (Este POST)
  • Inserción, Modificación y Borrado de Datos.

En primer lugar, quiero comentar que voy a abstraerme de la Base de Datos (Relacional) sobre lo que voy a escribir porque el lenguaje SQL es común a los distintos motores de BD que vayamos a encontrarnos (Oracle, SQL Server, MySql…) con algunas peculiaridades o funciones distintas, pero la base en si es la misma.

Consulta de Datos

¿Qué pretende un programador con una consulta contra la Base de Datos? Obtener un conjunto de resultados para llevar a cabo una acción, o representación, que al final le va a aportar algún resultado al Usuario de la aplicación que estamos desarrollando.

Podríamos descomponer una sentencia de consulta en las siguientes partes:

  1. Selección
  2. Origen de Datos
  3. [Filtrado]
  4. [Agrupaciones]
  5. [Orden]

Un ejemplo de una sentencia completa:

Si os fijáis en la imagen, las líneas se van a corresponder con los apartados que os indicaba anteriormente.

Para construir una sentencia necesitamos tener mínimo los apartados 1 y 2, siendo los otros opcionales.

1) Selección:

En este apartado vamos a definir, que datos queremos mostrar en la consulta, es decir, aquellos campos de nuestro Origen de datos, para que el usuario pueda interactuar.

Para poder realizar una consulta vamos a necesitar hacer uso de la palabra reservada “SELECT”.

A continuación, podremos definir un listado de campos del origen de datos, o utilizar el “*” para listar todos los campos del Origen de Datos, aunque esta ultima opción personalmente no me gusta, porque puede llevar a errores.

Cuando estamos listando campos, podemos realizar algunas acciones:

  • Asignarles Alias para cambiar el nombre de la columna. Imaginaos, que tenemos un campo llamado c00013341, que en realidad es el Código de Empleado, si en pantalla mostramos c00013341, posiblemente el Usuario nos pregunte que significa.
  • Usar Funciones: No voy a entrar a listar las distintas funciones, pero si me pedís algún ejemplo os lo publicaré.
  • Usar Funciones de Grupo: Funciones para Totalizar, Sumar… para ello, será importante el apartado 4.
  • Mostrar Literales…

2) Origen de Datos:

El Origen de Datos es la fuente donde se encuentran almacenados los Datos que queremos mostrar al usuario, o que queremos utilizar.

Por lo general, el Origen de Datos puede ser uno de los siguientes elementos:

  • Una o varias tablas de la Base de Datos.
  • Una Vista de la Base de Datos.
  • Una subconsulta.

La consulta, mas sencilla será aquella que se realice sobre una tabla.

 

En el momento en el que entran en juego varias tablas, o una mezcla de los distintos tipos que os indicaba, será necesario enlazar los datos a través del apartado 3 (Filtrado), o a través de la clausula JOIN, para evitar tener un producto cartesiano de resultados, que tened por seguro, no es lo que desea obtener el usuario.

3) Filtrado:

Este apartado, que es el primero opcional, nos va a permitir filtrar resultados de la consulta.

Por ejemplo, Dame todos los empleados cuya año de Nacimiento esté comprendido entre 1975 y 1980.

La palabra clave para iniciar el filtrado de datos es “WHERE”.

Que operadores podemos utilizar para filtrar datos:

  • “=” El operador de Igualdad.
  • “<>” El operador de Distinto.
  • “<” o “>” Menor o Mayor que.
  • “<=” o “=>” Menor o igual o Mayor o igual que.
  • “Between” Un valor entre varios posibles.
  • “IN” un valor disponible de una lista o  consulta.
  • “NOT IN” un valor que no coincida con un elemento de una lista o  consulta.

4) Agrupaciones:

Existe la posibilidad de utilizar funciones de grupo (SUM, COUNT, MAX…), pero para poder realizarlas, es necesario que a través de la cláusula GROUP BY, Indiquemos cuales son los valores, por los que vamos a agrupar nuestra consulta.

En el primer ejemplo, os hacia una consulta en la que agrupando por el nombre de la empresa, iba a sacar cuantas existían con el mismo nombre.

Ejemplo:

5) Ordenación

Por último, otra de las posibilidades de las consultas, es la ordenación de los resultados, por alguno de los campos de la consulta.

Para poder llevar a cabo una ordenación, será necesario usar la palabra reservada “ORDER BY”

Un ejemplo de su uso sería:

 

ORDER BY NOMBRE_EMPRESA [ASC | DESC]

 

Donde [ASC | DESC], será el tipo de Orden Ascendente o Descendente según deseemos.

 

Bueno, perdón por el ladrillo que os he metido.

Espero que os sea de utilidad, y en los próximos días publicaré la segunda parte.

Saludos!!

Un comentario sobre “BASICO: SQL(I) – Para Iniciarse”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *