jueves, 26 de mayo de 2011

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".

MAYÚSCULAS Las palabras que figuren en el formato en mayúsculas se escribirán en la sentencia igual que se escriben en el formato.

Minúscula cursiva Estas palabras deberán ser sustituidas en la sentencia por nombres o palabras elegidas por el usuario de acuerdo con las descripciones que se den en cada caso
Barra vertical | Indicará la elección de una de las opciones que este separando. O una u otra no ambas. 
Corchetes [ ] Encerrarán elementos opciones de la sentencia que pueden cogerse o no dependiendo del usuario.
Llaves { } Encerrarán elementos obligatorios de la sentencia que siempre deberán de ser especificados.

La cláusula SELECT lista los datos a recuperar por la sentencia SELECT. Los elementos o datos a seleccionar pueden ser columnas de la base de datos o columnas a calcular por SQL cuando efectúa la consulta o también el asterisco (*) para recuperar todos los campos de un fichero o tabla.
expresión_columna puede ser un simple nombre de campo (por ejemplo MATRICULA). Expresiones más complejas pueden incluir operaciones matemáticas o de manipulación de caracteres (por ejemplo APELLIDOS + ‘, ‘+ NOMBRE). Más adelante se verán estas expresiones de forma más amplia.
Las expresiones de columnas deben ir separadas por comas si existen más de una (por ejemplo APELLIDOS, NOMBRE, DNI, DOMICILIO).
Los nombres de campos pueden ir precedidos por el nombre de la tabla o su alias. Por ejemplo ALUMNOS.MATRICULA o A.MATRICULA donde A es el alias para la tabla o fichero ALUMNOS.

Cláusula FROM: La cláusula FROM lista las tablas o ficheros que contienen los datos a recuperar por la consulta. El formato de esta cláusula es:
FROM nombretabla [alias_tabla] ...
Nombretabla puede ser una o más nombres de tabla en el directorio de trabajo si se omite este, o en un directorio distinto si se especifica.
alias_tabla es un nombre que se usa para referirse a la tabla en el resto de la sentencia SELECT para abreviar el nombre original y hacerlo más manejable, en el caso de existir más de una tabla en la consulta y, también para poder realizar consultas uniendo varias veces la misma tabla. Por ejemplo,

SELECT A.NOMBRE, A.APELLIDOS FROM MATRICUL M, ALUMNOS A WHERE M.MATRICULA = A.MATRICULA AND M.GRUPO = ‘1A’ AND ANNO = 1995

Es mucho más práctico y sencillo que:
SELECT ALUMNOS.NOMBRE, ALUMNOS.APELLIDOS FROM MATRICUL, ALUMNOS WHERE MATRICUL.MATRICULA = ALUMNO.MATRICULA AND MATRICUL.GRUPO = ‘1A’ AND ANNO = 1995

Las dos sentencias son idénticas y nos devolverían los nombres y apellidos del alumnado matriculado en el año 1995 y que figuran en el grupo 1A. El nombre de tablas junto al nombre de campo es obligatorio cuando existan campos con nombre idéntico en las tablas que formen parte de la sentencia. Así en el ejemplo anterior NOMBRE y APELLIDOS no lo necesitarían (aunque este puesto) pero MATRICULA si lo necesita porque en las dos tablas existe un campo con ese nombre.
Si no se pudiera utilizar alias, no se podría unir una tabla consigo misma y la siguiente consulta no se podría llevar a cabo:
SELECT A.NOMBRE, A.APELLIDOS, H.NOMBRE FROM ALUMNOS A, ALUMNOS H WHERE A.PADRE = H.PADRE
Que nos devolverá el nombre de aquellos alumnos/as que tienen el mismo padre, es decir, son hermanos.

Cláusula WHERE: La cláusula WHERE dice a SQL que incluya solo ciertas filas o registros de datos en los resultados de la consulta, es decir, que tienen que cumplir los registros que se desean ver. La cláusula WHERE contiene condiciones en la forma:
WHERE expresión1 operador expresion2
expresión1 y expresion2 pueden ser nombres de campos, valores constantes o expresiones.
Operador es un operador relacional que une dos expresiones. Más tarde se verán los distintos operadores que se puede utilizar.
Por ejemplo, la siguiente sentencia nos muestra el nº de alumnos que han nacido con posterioridad a 1985.
SELECT COUNT (*) FROM ALUMNOS WHERE YEAR (FECHA_NACIMIENTO) > 1985