martes, 13 de abril de 2010

LENGUAJE SQL

SQL es el lenguaje de consulta universal para bases de datos.Los mandatos de SQL se dividen en tres grandes grupos diferenciados, los cuales serán tratados por separado y que unicamente se presentan aqui a modo introductorio.
DDL (Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas e índices entre otros.

Son comandos propios de este lenguaje:

CREATE TABLE

CREATE INDEX

CREATE VIEW

CREATE SYNONYMDML


(Data Manipulation Language),

cuya misión es la manipulación de datos. A través de él podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que más frecuentemente utilizaremos, y que con ella se construyen las consultas.

Son comandos propios de este lenguaje:

SELECT

UPDATE

INSERT

INSERT INTO

DELETE FROM

DCL (Data Control Laguage),

encargado de la seguridad de la base de datos, en todo lo referente al control de accesos y privilegios entre los usuarios.

Son comandos propios de este lenguaje:

GRANT

REVOKE

Cláusulas

Las cláusulas son condiciones de modificación utilizadas paradefinir los datos que desea seleccionar o manipular.
Comando Descripción

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 mas 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

Cláusula GROUP BY

La cláusula GROUP BY
especifica una consulta sumaria. En vez de producir un fila de resultados por cada fila de datos de la base de datos, una consulta sumaria agrupa todas las filas similares y luego produce una fila sumaria de resultados para cada grupo.
Seguido de la cláusula GROUP BY se especifican los nombres de uno o más campos cuyos resultados se desean agrupados. Tiene la forma:
GROUP BY expresión_columna
expresión_columna debe coincidir con la expresión de columna utilizada en la cláusula SELECT. Puede ser uno o más nombres de campo de una tabla, separados por coma o una o más expresiones separadas por comas. El siguiente ejemplo nos dice cuantos alumnos están matriculados en cada grupo en el año 1995:
SELECT GRUPO, COUNT(*) FROM MATRICUL WHERE ANNO = 1995 GROUP BY GRUPO
Esta sentencia nos devolverá una fila por cada grupo de alumnos. Cada una de ellas contendrá el grupo y el nº de alumnos en él.

Cláusula HAVING

La cláusula HAVING dice a SQL que incluya solo ciertos grupos producidos por la cláusula GROUP BY en los resultados de la consulta. Al igual que la cláusula WHERE, utiliza una condición de búsqueda para especificar los grupos deseados. En otras palabras, especifica la condición que deben de cumplir los grupos. Sólo es válida si previamente se ha especificado la cláusula GROUP BY.
La cláusula HAVING
tiene la forma:
HAVING expresión1 operador expresión2
expresión1 y expresión2 pueden ser nombres de campos, valores constantes o expresiones y estas no deben coincidir con una expresión de columna en la cláusula SELECT.
operador es un operador relacional que une las dos expresiones. Más tarde se verán los distintos operadores que se puede utilizar.
La sentencia siguiente nos mostrará el número de alumnos en cada grupo de 1995 cuyo numero de integrantes supera los 30:
SELECT GRUPO, COUNT(*) FROM MATRICUL WHERE ANNO = 1995 GROUP BY GRUPO HAVING COUNT(*) > 30
Operador UNION
El operador UNION combina el resultado de dos sentencias SELECT en un único resultado. Este resultado se compone de todos los registros devueltos en ambas sentencias. Por defecto, los registros repetidos se omiten. Para no quitarlos se empleará la palabra ALL. Tiene la forma:
SELECT sentencia UNION [ALL] SELECT sentencia
Cuando se utilice el operador UNION, la lista de selección para cada sentencia SELECT debe tener el mismo número de expresiones de columnas con el mismo tipo de datos y en el mismo orden. Por ejemplo,
SELECT APELLIDOS, NOMBRE FROM ALUMNOS UNION SELECT APELLIDOS, NOMBRE FROM PROFESOR UNION SELECT APELLIDOS, NOMBRE FROM PERSONAL
Este ejemplo tiene el mismo nº de columnas y cada columna en orden con el mismo tipo de datos. Nos devolverá una lista única de alumnos, profesores y personal no docente.

Cláusula ORDER BY

La cláusula ORDER BY ordena los resultados de la consulta en base a los datos de una o más columnas. Si se omite, los resultados saldrán ordenados por el primer campo que sea clave en el índice que se haya utilizado.
Por tanto, indica como deben clasificarse los registros que se seleccionen. Tiene la forma:
ORDER BY {expresión_orden [DESC ASC], ... ]
expresión_orden puede ser el nombre de un campo, expresión o el número de posición que ocupa la expresión de columna en la cláusula SELECT. Por defecto se ordenan ASCendentemente (de menor a mayor). Si se deseará de mayor a menor se empleará DESC (DESCendente). Por ejemplo, para mostrar los alumnos ordenados de mayor edad a menor, se utilizaría:
SELECT NOMBRE, APELLIDOS FROM ALUMNOS ORDER BY FECHA_NACIMIENTO DESC
Para obtener un listado de alumnos por su lugar de nacimiento ordenado por provincias y dentro de cada provincia ordenados por localidades se utilizaría:
SELECT NOMBRE+’ ‘+APELLIDOS, LOCALIDAD_NACIMIENTO, PROVINCIA_NACIMIENTO FROM ALUMNOS ORDER BY PROVINCIA, LOCALIDAD
o lo mismo de otra forma
SELECT NOMBRE+’ ‘+APELLIDOS, LOCALIDAD_NACIMIENTO, PROVINCIA_NACIMIENTO FROM ALUMNOS ORDER BY 3, 2

Operadores Lógicos

Operador Uso
AND Es
el “y” lógico. Evalúa dos condiciones y devuelve unvalor de verdad sólo si ambas son ciertas.
OR Es
el “o” lógico. Evalúa dos condiciones y devuelve unvalor de verdad si alguna de las dos es cierta.
NOT Negaciónlógica.
Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador Uso
<> Mayor
que
<> Distinto
de
<= Menor ó Igual que >= Mayor
ó Igual que
BETWEEN Utilizado
para especificar un intervalo de valores.
LIKE Utilizado
en la comparación de un modelo
In Utilizado
para especificar registros de una base de datos

Funciones de Agregado

Lasfunciones de agregado se usan dentro de una cláusula SELECTen grupos de registros para devolver un único valor que se aplica a ungrupo de registros.
Comando Descripción
AVG Utilizada
para calcular el promedio de los valores de un campo determinado
COUNT Utilizada
para devolver el número de registros de la selección
SUM Utilizada
para devolver la suma de todos los valores de un campo determinado
MAX Utilizada
para devolver el valor más alto de un campo especificado
MIN Utilizada
para devolver el valor más bajo de un campo especificado.

No hay comentarios:

Publicar un comentario