Tutoriales SQL – Introduccion a SQL
Con este articulo voy a inaugurar una serie de tutoriales en los que voy a ir explicando como utilizar el lenguaje SQL. Para todos los ejemplos voy a utilizar el motor de Base de Datos MySQL y la base de datos ejemplo Sakila; por lo que les recomiendo que los instalen en su equipo (instalarlos en forma local es muy facil y no requiere mucho espacio ni recursos); para instalar MySQL y Sakila pueden darse una vuelta por mis anteriores articulos:
Introduccion:
El lenguaje SQL (structured query language) es un lenguaje declarativo que nos permite comunicarnos con las bases de datos relacionales. Por medio de este lenguaje vamos a poder realizar operaciones de Definicion de Datos (DDL) y de Manipulacion de Datos (DML). Por medio de las sentencias de Definicion de Datos vamos a poder crear, borrar y/o modificar la estructura de las tablas y los datos de nuestra base de datos; y por medio de las sentencias de Manipulacion de Datos vamos a poder seleccionar, insertar, borrar y/o actualizar los datos.
Si bien el lenguaje SQL es un lenguaje estandar, cada motor de base de datos implementa su propia versión del lenguaje, por lo que dependiendo del motor de base datos con el que estemos trabajando (Oracle, DB2, MsSQL, MySQL, PostgreSQL, etc) algunas funciones o sentencias pueden variar. (intentaré ir detallando las variaciones entre los distintos motores a medida que puedan ir surgiendo en los ejemplos de los tutoriales)
Voy a comenzar explicando las sentencias básicas de Manipulacion de Datos, ya que son las que más se usan en el día a día. Como les comentaba, las operaciones básicas de manipulación de datos que podemos realizar a través de SQL son:
- SELECCIONAR DATOS, a través de la sentencia SELECT.
- ACTUALIZAR DATOS, a través de la sentencia UPDATE.
- INSERTAR DATOS, a través de la sentencia INSERT.
- BORRAR DATOS, a través de la sentencia DELETE.
1 2 3 4 |
SELECT columna1, columna2 ... FROM tabla1, tabla2 ... WHERE condicion1, condicion2 ... |
En próximos tutoriales veremos que existen otras clausulas que se pueden agregar a la sintaxis de la sentencia SELECT para darle más flexibilidad, pero a los efectos de esta introducción no los voy a incluir de momento. Tener en cuenta también, que si bien yo estoy escribiendo las clausulas principales (SELECT, FROM, WHERE) en mayúsculas , y las columnas, las tablas y las condiciones en minúsculas; la mayoría de los motores de base de datos no toman en cuenta esto, por lo que se podrían ingresar las sentencias totalmente en mayusculas, o totalmente en minusculas o con una combinacion de mayusculas/minusculas.
Dentro de la estructura básica de esta sentencia, la clausula SELECT especifica las columnas(los campos) que queremos seleccionar; la clausula FROM estable las tablas de la base de datos que vamos a consultar y la clausula WHERE, que puede ser opcional, contiene todas las condiciones que identifican a las lineas que queremos seleccionar.
Por ejemplo, si ejecutamos la siguiente sentencia en nuestra base de datos ejemplo:
1 2 3 |
SELECT actor_id, first_name FROM sakila.actor; |
obtendríamos el siguiente resultado:
Con esta sentencia, le estamos diciendo a nuestra base datos que nos traiga las columnas de actor_id y first_name, para todas las lineas (ya que no establecimos ninguna condicion con la clausula WHERE) de la tabla actor(de la base de datos Sakila).
Si queremos que en lugar de que nos muetre solo dos columnas, nos muestre todas las columnas de la tabla, lo único que tendrías que hacer es reemplazar el nombre de las columnas, por un asterisco (*). La sentencia quedaría así:
1 2 3 |
SELECT * FROM sakila.actor; |
Hasta aquí solo venimos seleccionando todas las filas de la tabla, para seleccionar solo una o algunas de las filas, debemos utilizar la clausula WHERE, esta clausula contiene las expresiones logicas sobre las cuales cada linea va a ser evaluada. Si la linea cumple con la condicion que estable la expresion, entonces va a pasar a formar parte del resultado que se nos muestra, en caso contrario, sera omitida. Por ejemplo si quisieramos saber todos los actores que se llamen “Ed”, podríamos ejecutar la siguiente sentencia:
1 2 3 4 |
SELECT * FROM sakila.actor WHERE first_name = 'ED'; |
Como vemos en el ejemplo, la clausula WHERE, para expresar sus condiciones, utiliza los nombres de las columnas seguidas de un operador de relacion y luego el valor del dato a relacionar con la columna. (El uso de las comillas simples (‘) en el ejemplo, se debe al tipo de dato que estamos relacionando, si se trata de un campo que sea alfanumerico o texto, el uso de las comillas simples es obligatorio; para los campos numericos el uso de las comillas no es necesario.)
Los 6 operadores de relacion que podemos utilizar para expresar nuestras condiciones son:
operador | significado | ejemplo |
= | igual que | amount = 0.99 |
< | menor que | amount < 2 |
<= | menor o igual que | amount <= 1.99 |
> | mayor que | amount > 0.99 |
>= | mayor o igual que | amount >= 1.99 |
!= o <> | distinto que | amount != 0.99 o amount <> 0.99 |
Por ejemplo si quisieramos saber los pagos por un importe mayor a 2, podríamos ejecutar la siguiente sentencia:
1 2 3 4 |
SELECT * FROM sakila.payment WHERE amount > 2; |
Los invito a que continuen experimentando con lo aprendido hasta ahora. En próximos tutoriales continuare explicando la sentencia SELECT.
Saludos!