sql >> Base de Datos >  >> RDS >> Access

Trabajar con lenguaje de consulta estructurado (SQL) con Microsoft Access 2010, 2013, 2016 y 2019

Introducción

El propósito de este tutorial es demostrar cómo puede escribir sus propias instrucciones SQL y ejecutarlas desde Microsoft Access 2007, 2010, 2013, 2016 o 2019 (los pasos son prácticamente idénticos en todas las versiones). Al igual que con todas las bases de datos relacionales, Microsoft Access se puede programar directamente utilizando el lenguaje de consulta estructurado (SQL). Si bien la mayoría de las veces SQL está oculto para los usuarios, para los estudiantes de bases de datos, MS Access proporciona una manera rápida y fácil de explorar SQL y escribir algunas consultas bastante complejas. Esto es especialmente útil si no tiene tiempo o paciencia para instalar SQL Server, Oracle, MySQL u otro sistema de administración de base de datos relacional más grande.

Los ejemplos de SQL utilizados en este breve tutorial se basan en las tablas simples de Clientes y Cuentas creadas como parte de mi Tutorial de Microsoft Access 2007, 2010 y 2013.
Es posible que desee ejecutar primero ese tutorial (o al menos la primera algunas secciones) para crear las tablas y agregar los datos necesarios para que estos ejemplos funcionen.

La siguiente sección brindará una breve introducción al lenguaje de consulta estructurado (SQL).

El lenguaje de consulta estructurado (SQL)

El lenguaje de consulta estructurado (SQL pronunciado "Sequel") es un lenguaje de programación declarativo que se utiliza para manipular los sistemas de gestión de bases de datos relacionales (RDBMS). Se introdujo por primera vez en el System R de IBM a fines de la década de 1970. Hoy en día, SQL se utiliza en todos los SGBD relacionales principales, como Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access y muchos otros. Si bien cada proveedor de base de datos proporciona algunas características patentadas agregadas, el núcleo de SQL se puede usar en casi cualquier base de datos relacional.

El lenguaje de consulta estructurado se divide en dos partes principales:

  1. Lenguaje de definición de datos (DDL):se utiliza para crear (definir) estructuras de datos como esquemas, tablas, índices, clústeres, secuencias y para proteger la base de datos
  2. Lenguaje de manipulación de datos (DML):se utiliza para insertar, recuperar, actualizar y eliminar datos de las tablas.

Microsoft Access es compatible con las partes DDL y DML de SQL. La mayoría de las veces nos enfocamos en consultas SQL que, como declaraciones SQL SELECT, se utilizan para recuperar datos de una base de datos existente. La sintaxis básica para una instrucción SQL SELECT es:

SELECT   column1, column2, ... columnN
FROM     tableA, tableB, ... tableZ
WHERE    condition1, condition2, ...conditionM
ORDER BY column1, column2, ... columnN

Entonces, por ejemplo, suponiendo que tenemos una tabla llamada Cliente con columnas como Nombre, Apellido, Dirección, Ciudad, Estado y Código postal, podemos escribir una instrucción SQL SELECT como esta:

SELECT   FirstName, LastName, City, State
FROM     customer

En la consulta anterior, solicitamos datos solo en las columnas Nombre, Apellido, Ciudad y Estado, y la tabla de la que obtenemos estos datos se llama cliente. Tenga en cuenta que el lenguaje SQL no se preocupa por las letras mayúsculas o minúsculas. Así que escribiendo select firstName... es lo mismo que escribir SELECT FIRSTNAME ... .

Una consulta un poco más sofisticada sería si solo queremos ver a los clientes que viven en Georgia y nos gustaría que los resultados estuvieran ordenados por el apellido del cliente:

SELECT   FirstName, LastName, City, State
FROM     customer
WHERE    state = 'GA'
ORDER BY LastName

Como puede ver, la lista de columnas que queremos mostrar sigue a la palabra clave SELECT. El nombre de la tabla que estamos consultando sigue a la palabra clave FROM, una condición state ='GA' sigue a la palabra clave WHERE y finalmente los resultados se ordenan en la columna LastName como se describe en la palabra clave ORDER BY.

Hay muchas más funciones de la declaración SQL SELECT que implican consultar varias tablas "uniéndolas", agrupando colecciones de registros para encontrar valores totales, mayores, menores o promedio, y realizar otras manipulaciones en la salida que los usuarios finalmente verán. Puede encontrar una discusión mucho más completa sobre las características de SQL en este enlace.

La siguiente sección presenta el uso de SQL desde la vista Diseño de consulta en MS Access.

SQL en Microsoft Access

En esta sección proporcionaremos los pasos para escribir su propio SQL en MS Access. Este ejercicio asume que tiene MS Access 2007, 2010 o 2013 ejecutándose con la base de datos "Banco" (tablas Cliente y Cuentas) abierta. Haga clic aquí para ver el tutorial con los pasos para crear esta base de datos.

Para empezar:

  1. cree una nueva consulta haciendo clic en Crear y luego haciendo clic en Diseño de consulta icono como se muestra a continuación.
  2. El cuadro de diálogo "Mostrar tabla" aparecerá como se muestra a continuación. Haga clic en Cerrar botón para cerrarlo.
  3. Haga clic en la pestaña Diseño y luego haga clic en SQL en el lado izquierdo (o despliegue el botón de vista y seleccione SQL

  4. En este punto, aparecerá la Vista SQL de la consulta Query1. De forma predeterminada, la palabra clave SELECT se muestra en la ventana.
  5. Edite la consulta para escribir una instrucción SQL completa:
    SELECT   firstname, lastname
    FROM     customer
    ORDER BY lastname
    
    

    La ventana de consulta de la vista SQL ahora aparecerá como se muestra a continuación:

  6. En este punto, con la instrucción SQL escrita, podemos ejecutar la consulta en la base de datos haciendo clic en el botón "Ejecutar" con el signo de exclamación.

  7. Los resultados de la consulta se mostrarán en una vista de hoja de datos (como una hoja de cálculo):

  8. Para volver a editar la consulta SQL, despliegue el menú Ver y seleccione SQL nuevamente.

  9. También puede guardar su consulta. Para hacer esto, haga clic derecho en la pestaña con el nombre de la consulta actual:Query1 y elija Guardar .

    Aparecerá un cuadro de diálogo solicitando el nuevo nombre de la consulta. Escriba un nuevo nombre como:Customer_Names y luego haga clic en Aceptar para guardarlo.

  10. Por último, MS Access no proporciona una forma de guardar una consulta con un nuevo nombre ("Guardar como"). En su lugar, lo que puede hacer es resaltar el nombre de la consulta, hacer clic con el botón derecho y seleccionar Copiar luego haga clic derecho nuevamente y seleccione Pegar . A continuación, se le solicitará el nuevo nombre de la consulta.

A continuación, presentaré algunos trucos y consejos para escribir y depurar sus consultas SQL.

Escribir y depurar consultas SQL en MS Access

Ahora que tiene la mecánica básica para escribir y ejecutar consultas SQL, aquí hay algunos consejos y trucos para depurar su SQL.

Editores para MS Access SQL

La ventana del editor SQL en MS Access no es tan inteligente ni fácil de usar. Una forma de trabajar con SQL es escribir el código en otro editor, luego copiar y pegar el código en Access para ejecutarlo. Hay muchos editores de texto diferentes disponibles. Por ejemplo, dentro de Windows tendrá el Bloc de notas disponible en el grupo Accesorios. La única advertencia que puedo dar aquí es NO usar MS Word u otro software de procesamiento de textos para escribir su SQL. La razón de esto es que MS Word y otros procesadores de texto convertirán sus comillas simples y dobles en "comillas elegantes" que SQL no entiende.
Por ejemplo, si tiene una cláusula WHERE como WHERE state ='GA'
SQL espera que el texto esté entre comillas simples. MS Word los convertirá en un elegante carácter de comillas de apertura y cierre que SQL no entenderá.
Si recibe un error como Ingrese el valor del parámetro para `GA’ entonces definitivamente querrá asegurarse de tener su texto entre comillas simples.

Lidiar con errores de sintaxis

Los errores de sintaxis pueden ser muy frustrantes en SQL porque, a menudo, la base de datos no puede identificar exactamente dónde está el problema en su código. Algunos de los principales errores que mostrará Access incluyen:

Texto de error Solución Ejemplo
Ingrese el valor del parámetro para ________ La mayoría de las veces, esto sucede cuando el nombre de una columna (campo) no se escribe correctamente (como en este caso, “lstname” está mal escrito) o una expresión no se puede ser reconocido como WHERE state =`GA'
El motor de la base de datos de Microsoft Access no puede encontrar la tabla o consulta de entrada :______________ La mayoría de las veces, esto sucede cuando el nombre de una tabla no se escribe correctamente en la cláusula FROM de la consulta. Por ejemplo, en este caso, la consulta especificó DE clientes en lugar de DEL cliente
Error de sintaxis (operador faltante) en la expresión de consulta:______________ En este caso, a la sintaxis de la consulta le faltan algunas partes clave. Por ejemplo, falta la cláusula "FROM" y, por lo tanto, Access informa la ubicación aproximada de donde ocurre el problema al mostrar el texto de la consulta.

En la siguiente sección, proporcionaré algunos consejos adicionales sobre cómo presentar sus consultas y resultados SQL para un proyecto o una tarea.

Documentar su trabajo SQL

En esta sección, describiré algunos consejos para dar formato a sus consultas y resultados para que se presenten de manera clara y concisa en sus tareas y proyectos.
La suposición aquí es que utilizará un programa de procesamiento de textos como MS Word u otro programa de procesamiento de texto que admita copiar y pegar imágenes y texto.

MS Access no le permite poner comentarios en el código SQL. Otros DBMS permiten esto, pero Access es un poco más restrictivo.

Para este ejercicio, suponga que la pregunta de tarea es mostrar el nombre y apellido de todos los clientes y ordenar el resultado por el apellido del cliente.

  1. Escriba la consulta SQL como se describe en la sección anterior y ejecútela para obtener los resultados:
  2. En la vista Hoja de datos, haga clic en el pequeño cuadro cuadrado a la izquierda de los encabezados de columna y en la parte superior de los cuadros de selección de fila. Esto hará que se resalte todo el conjunto de resultados.
  3. Haga clic derecho en el mismo cuadro pequeño cuadrado en la esquina y seleccione Copiar del menú emergente.
  4. Cambie a MS Word (u otro programa de procesamiento de texto) y pegue los resultados en una ubicación adecuada:

Algunos otros consejos útiles que también se siguieron para crear este documento de asignación:

  • Asegúrese de escribir la oración completa que describe la consulta que está resolviendo (no solo escriba "Pregunta 1"). Por ejemplo, es posible que desee copiar la pregunta de la tarea y convertirla en parte de la respuesta.
  • Cuando pegue el texto SQL para su consulta, use una fuente Courier New para que los caracteres y espacios se alineen. Esto hace que sea mucho más fácil de leer.
  • Pegue los resultados usando la técnica que se muestra arriba en lugar de usar una captura de pantalla. Esto no solo hará que sus archivos de documentos de Word sean más pequeños, sino que también se verá muy claro cuando los imprima.
  • Asegúrese de poner su nombre, clase/curso y sección en su tarea.
  • Para consultas más complejas que pueden incluir subconsultas o consultas en línea, es mejor alinear las subconsultas con sangría para que sean más fáciles de leer y depurar. Por ejemplo, en lugar de escribir una subconsulta como esta:
    SELECT  accountnumber, balance
    FROM    accounts  WHERE   balance = (SELECT MIN(balance) from accounts)
    
    

    Alinee la consulta secundaria a lo largo de los paréntesis:

    SELECT  accountnumber, balance
    FROM    accounts  
    WHERE   balance = (
                        SELECT MIN(balance) 
                        FROM   accounts
                      )
    
    

Seguir estos pasos causará una gran impresión cuando entregues tus tareas y proyectos.

Conclusiones

En este breve tutorial cubrimos cómo trabajar con SQL usando MS Access. SQL es un lenguaje de programación bastante genérico y cualquier cosa que aprenda mientras escribe SQL con MS Access puede transferirse fácilmente a otras bases de datos relacionales como SQL Server, Oracle, Sybase, etc. Para obtener más notas sobre SQL, visite mi lenguaje de consulta estructurado (SQL) página de notas del curso.

Para obtener más tutoriales introductorios y avanzados de MS Access, visite la Categoría de acceso en mi sitio web.