lunes, 3 de junio de 2013


El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar  de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores.

Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto, como el que vamos a ver aquí corespondiente al Access2000.

Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor dicho sublenguajes:

el DDL (Data Description Language), lenguaje de definición de datos, incluye órdenes para definir, modificar o borrar las tablas en las que se almacenan los datos y de las relaciones entre estas. (Es el que más varia de un sistema a otro)

el DCL (Data Control Language), lenguaje de control de datos, contiene elementos útiles para trabajar en un entorno multiusuario, en el que es importante la protección de los datos, la seguridad de las tablas y el establecimiento de restricciones en el acceso, así como elementos para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieren unos con otros.
el DML (Data Manipulation Language), lenguaje de manipulación de datos, nos permite recuperar los datos almacenados en la base de datos y también incluye órdenes para permitir al usuario actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos o modificando datos previamente almacenados.
Características del lenguaje
Una sentencia SQL es como una frase (escrita en inglés ) con la que decimos lo que  queremos obtener y de donde obtenerlo.
Todas las sentencias empiezan con un verbo (palabra reservada que indica la acción a realizar), seguido del resto de cláusulas, algunas obligatorias y otras opcionales que completan la frase. Todas las sentencias siguen una sintaxis para que se puedan ejecutar correctamente, para describir esa sintaxis utilizaremos un diagrama sintáctico como el que se muestra a continuación.
Cómo interpretar un diagrama sintáctico



Las palabras que aparecen en mayúsculas son palabras reservadas se tienen que poner tal cual y no se pueden utilizar para otro fin, por ejemplo, en el diagrama de la figura tenemos las palabras reservadas SELECT, ALL, DISTINCT, FROM, WHERE.
Las palabras en minúsculas son variables que el usuario deberá sustituir por un dato concreto. En el diagrama tenemos nbcolumna, expresion-tabla y condicion-de-busqueda.




Para crear una consulta de selección, seguir los siguientes pasos:

Abrir la base de datos donde se encuentra la consulta a crear.

Hacer clic sobre el objeto Consulta que se encuentra a la izquierda de la ventana de la base de datos.

Hacer clic sobre el botón Nuevo de la ventana de la base de datos.

 




Aparecerá el siguiente cuadro de diálogo:

Seleccionar Vista Diseño.
Hacer clic sobre el botón Acepta
r.















Hacer clic sobre el botón , este botón es el que permite elegir la vista de la consulta, puede adoptar una de estas tres formas


Al apretar el botón cerrar de la pantalla anterior se abre esta ventana donde introducimos la sentencia SQL.
Una vez escrita sólo nos queda ver si está bien hecha.
Hacer clic sobre el botón de la
barra de herramientas para ejecutar la sentencia.

Si nos hemos equivocado a la hora de escribir la sintaxis, Access nos saca un mensaje de error y muchas veces el cursor se queda posicionado en la palabra donde ha saltado el error. Ojo, a veces el error está antes o después de donde se ha quedado el cursor.

Si no saca ningún mensaje de error, esto quiere decir que la sentencia respeta la sintaxis definida, pero esto no quiere decir que la sentencia esté bien, puede que no obtenga lo que nosotros queremos, en este caso habrá que rectificar la sentencia.
Guardar la consulta haciendo clic sobre el botón de la barra de herramientas.
Objetivo




Empezaremos por estudiar la sentencia SELECT, que permite recuperar datos de una o varias tablas. La sentencia SELECT es con mucho la más compleja y potente de las sentencias SQL. Empezaremos por ver las consultas más simples, basadas en una sola tabla.

Esta sentencia forma parte del DML (lenguaje de manipulación de datos), en este tema veremos cómo seleccionar columnas de una tabla, cómo seleccionar filas y cómo obtener las filas ordenadas por el criterio que queramos.

El resultado de la consulta es una tabla lógica, porque no se guarda en el disco sino que está en memoria y cada vez que ejecutamos la consulta se vuelve a calcular.

Cuando ejecutamos la consulta se visualiza el resultado en forma de tabla con columnas y filas, pues en la SELECT tenemos que indicar qué columnas ueremqos que tenga el resultado y qué filas queremos seleccionar de la tabla origen.








Sintaxis de la sentencia SELECT (consultas simples)












Con la cláusula FROM indicamos en qué tabla tiene que buscar la información. En este capítulo de consultas simples el resultado se obtiene de una única tabla. La sintaxis de la cláusula es:
FROM
especificación de tabla

Una especificación de tabla puede ser el nombre de una consulta guardada (las que aparecen en la ventana de base de datos), o el nombre de una tabla que a su vez puede tener el siguiente formato:








Aliastabla es un nombre de alias, es como un segundo nombre que asignamos a la tabla, si en una consulta definimos un alias para la tabla, esta se deberá nombrar utilizando ese nombre y no su nombre real, además ese nombre sólo es válido en la consulta donde se define. El alias se suele emplear en consultas basadas en más de una tabla que veremos en el tema siguiente. La palabra AS que se puede poner delante del nombre de alias es opcional y es el valor por defecto por lo que no tienen ningún efecto.
Ejemplo: SELECT ......FROM oficinas ofi ; equivalente a SELECT ......FROM oficinas AS ofi esta sentencia me indica que se van a buscar los datos en la tabla oficinas que queda renombrada en esta consulta con ofi.

En una SELECT podemos utilizar tablas que no están definidas en la base de datos (siempre que tengamos los permisos adecuados claro), si la tabla no está en la base de datos activa, debemos indicar en qué base de datos se encuentra con la cláusula IN.

En la cláusula IN el nombre de la base de datos debe incluir el camino completo, la extensión (.mdb), y estar entre comillas simples.
Supongamos que la tabla empleados estuviese en otra base de datos llamada otra en la carpeta c:\mis documentos\, habría que indicarlo así:

SELECT *
FROM empleados IN 'c:\mis documentos\otra.mdb'

Generalmente tenemos las tablas en la misma base de datos y no hay que utilizar la cláusula IN.





Selección de columnas


La lista de columnas que queremos que aparezcan en el resultado es lo que llamamos lista de selección y se especifica delante de la cláusula FROM.
 
    

No hay comentarios:

Publicar un comentario