Contenido

# Diseño de consulta

La vista Diseño de consulta permite la creación y edición de consultas de bases de datos.

Para acceder a esta orden…

En la ventana del archivo de la base de datos, pulse en el icono Consultas y, a continuación, vaya a Editar ▸ Editar.

La mayoría de las bases de datos utilizan consultas para filtrar u ordenar las tablas de bases de datos para que muestren los registros en el equipo. Las vistas proporcionan las mismas funciones que las consultas, pero en el servidor. Si la base de datos se encuentra en un servidor que admite vistas, puede utilizar dichas vistas para filtrar los registros del servidor a fin de acelerar el tiempo de visualización.

Al seleccionar la orden Crear vista de la pestaña Tablas de un documento de base de datos, verá la ventana Diseño de vista que es similar a la ventana Diseño de consulta que se describe aquí.

Cuando se crea una consulta se conserva la disposición de la ventana Diseño de consulta, lo cual no sucede cuando se crea una vista.

## La vista Diseño

Para crear una consulta, pulse en el icono Consultas de un documento de base de datos y, a continuación, pulse en Crear consulta en modo de diseño.

El panel inferior de la vista de diseño es donde se define la consulta. Para definir una consulta, especifique los nombres de los campos de la base de datos que se van a incluir, así como los criterios para mostrar los campos. Para reorganizar las columnas en la parte inferior de la vista de diseño, arrastre una cabecera de columna a una posición nueva o seleccione la columna deseada y presione ⌘Ctrl y una tecla de flecha.

En la parte superior de la ventana de la vista Diseño de consulta, se muestran los iconos de las barras Diseño de consulta y Diseño.

Si desea probar una consulta, haga doble clic en el nombre de la consulta, en el documento de la base de datos. El resultado de la consulta se mostrará en una tabla similar a la vista Orígenes de datos. Nota: la tabla que se muestra es temporal.

### Teclas en la vista de diseño de consultas

Tecla | Función
--- | ---
F4 | Previsualizar
F5 | Ejecutar consulta
F7 | Añadir tabla o consulta

## Examinar

Cuando abra el diseño de consulta por vez primera, aparecerá un cuadro de diálogo en el que debe primero seleccionar la tabla o consulta que será la base de su consulta nueva.

Pulse dos veces en los campos para agregarlos a la consulta. Arrastre y coloque para definir relaciones.

Durante el diseño de una consulta no es posible modificar las tablas seleccionadas.

### Quitar tablas

Para quitar una tabla de la vista de diseño, pulse en el margen superior de la ventana de la tabla y active el menú contextual. Con la orden Eliminar borrará la tabla de la vista de diseño. Otra opción es oprimir la tecla Supr.

### Desplazar tabla y modificar tamaño de tabla

Las tablas y su tamaño y organización pueden definirse a voluntad. Para desplazar una tabla se pulsa con el ratón el margen superior y se lleva a la posición deseada. Para aumentar o disminuir el tamaño de presentación, arrastre el borde hacia una de las esquinas.

## Relaciones entre tablas

Si existen relaciones de datos entre un nombre de campo en una tabla y un nombre de campo en otra tabla, podrá emplear estas relaciones para su consulta.

Si, por ejemplo, tiene una hoja de cálculo para artículos identificados por el número de artículo y una hoja de cálculo para clientes en la que registra todos los artículos que un cliente pide utilizando los números de artículo correspondientes, entonces existe una relación entre los dos campos de datos «número de artículo». Si ahora quisiera crear una consulta que devuelva todos los artículos que ha pedido un cliente, debe recuperar datos de las dos hojas de cálculo. Para hacerlo, LibreOffice debe conocer la relación que hay entre los datos de ambas hojas.

Para realizar esta operación, pulse en un nombre de campo en una tabla (por ejemplo, el nombre de campo «Número-Artículo» de la tabla Cliente), mantenga presionado el botón del ratón y arrastre el nombre del campo hasta el nombre de campo de la otra tabla («Número-Artículo» en la tabla Artículo). Cuando suelte el botón del ratón, aparecerá una línea conectando ambos campos entre ambas tablas. La condición correspondiente de que los contenidos de ambos nombres de campos deben ser idénticos se introduce en la consulta SQL resultante.

La creación de consultas basadas en varias hojas de cálculo relacionadas solo es posible si se emplea LibreOffice como interfaz de una base de datos relacional.

No se puede acceder a tablas de diferentes bases de datos en una consulta. Las consultas en las que intervienen varias tablas pueden crearse únicamente dentro de una sola base de datos.

### Especificar el tipo de relación

Si pulsa dos veces en la línea que une dos campos enlazados o selecciona la orden del menú Insertar ▸ Relación nueva, podrá especificar el tipo de relación a través del cuadro de diálogo Relaciones.

Como alternativa, presione Tab hasta seleccionar la línea y, acto seguido, presione Mayús + F10 para que se muestre el menú contextual y allí elegir la orden Editar. Algunas bases de datos admiten solo algunos de los tipos de unión posibles.

### Eliminar relaciones

Para eliminar una relación entre dos tablas, pulse en la línea conectora y oprima la tecla Supr.

Como alternativa, puede eliminar las entradas respectivas en el apartado Campos involucrados del cuadro de diálogo Relaciones. O bien, puede oprimir el tabulador hasta que el vector de conexión quede destacado y luego oprimir Mayús + F10 para abrir el menú contextual y seleccionar la orden Eliminar.

## Definir la consulta

Seleccione condiciones para definir la consulta. Cada columna de la tabla de diseño acepta un campo de datos para la consulta. Las condiciones en una fila se enlazan con un Y booleano.

### Especificar el nombre de los campos

Primero, seleccione todos los nombres de campos de las tablas que quiera añadir a la consulta. Para este fin puede arrastrar y colocar o pulsar dos veces en un nombre de campo en la ventana de la tabla. Con el método de arrastrar y colocar, sírvase del ratón para arrastrar un nombre de campo desde la ventana de la tabla hasta el área inferior de la ventana de diseño de consulta. Mientras lleva a cabo este proceso, puede decidir qué columna en la ventana de diseño de consulta recibirá el campo seleccionado. También se puede seleccionar un nombre de campo si pulsa dos veces sobre este. Tras hacerlo, se añadirá en la siguiente columna libre de la ventana de diseño de consulta.

### Eliminar nombres de campos

Para quitar un nombre de campo de la consulta, pulse con el ratón en la cabecera de la columna del campo y active la orden Eliminar del menú contextual de la columna.

### Guardar la consulta

Utilice el botón Guardar en la barra Estándar para guardar la consulta. Verá un cuadro de diálogo que le solicitará un nombre para la consulta. Si la base de datos admite esquemas, también puede introducir un nombre de esquema.

#### Esquema

Escriba el nombre del esquema que se asigna a la vista de consulta o de tabla.

#### Nombre de la consulta o de la vista de tabla

Proporcione el nombre de la consulta o la vista de tabla.

### Filtrar datos

Para filtrar datos en la consulta, establezca los criterios que desee en el área inferior de la ventana de diseño de consulta. Las opciones que se enumeran a continuación están disponibles:

#### Campo

Escriba el nombre del campo de datos al que se hace referencia en la consulta. Todas las opciones definidas en las filas de opciones del filtro se refieren a este campo. Si activa aquí una celda con una pulsación del ratón, verá un botón de flecha, el cual le permite seleccionar un campo. La opción «Nombre de tabla.*» selecciona todos los campos de datos para que se les apliquen los criterios especificados.

#### Alias

Permite especificar un alias. Este alias se mostrará en la consulta en sustitución del nombre del campo. Gracias a esta funcionalidad, es posible utilizar etiquetas de columnas definidas por el usuario. Por ejemplo, si el campo de datos se denomina «NoPt» y en lugar de ese nombre quiere que en la consulte figure «NumParte», escriba «NumParte» como el alias.

En SQL los alias se definen como se muestra a continuación:

SELECT columna AS alias FROM tabla.

Por ejemplo:

    SELECT "PtNo" AS "PartNum" FROM "Parts"

#### Tabla

Aquí se muestra la tabla de base de datos correspondiente al campo de datos seleccionado. Si activa esta celda pulsando en ella con el ratón, se muestra una flecha que le permite seleccionar otra tabla de la consulta actual.

#### Ordenar

Si pulsa en esta celda, puede elegir una opción de ordenación: ascendente, descendente y sin ordenar. Los campos de datos se ordenarán alfabéticamente y los numéricos, numéricamente. En la mayoría de las bases de datos, los administradores pueden establecer las opciones de ordenación.

#### Visible

Si activa la propiedad Visible de un campo de datos, este campo será visible en la consulta resultante. Si utiliza un campo de datos únicamente para formular una condición o efectuar un cálculo, no hace falta hacerlo visible.

#### Criterios

Permite especificar un primer criterio por el cual se filtrará el contenido del campo de datos.

#### o

Aquí puede introducir un criterio de filtro adicional por cada renglón. Varios criterios en una única columna se interpretarán como un O booleano.

Asimismo, puede emplear el menú contextual de las cabeceras de filas en el área inferior de la ventana de diseño de consulta para insertar un filtro que se base en una función:

### Funciones

Las funciones disponibles aquí dependerán de aquellas que el motor de bases de datos brinde.

Si trabaja con la base de datos HSQL incorporada, el cuadro de lista de la fila Función ofrece las posibilidades siguientes:

Opción | SQL | Efecto
--- | --- | ---
Sin función |  | No se ejecutará ninguna función.
Promedio | AVG | Calcula la media aritmética de un campo.
Recuento | COUNT | Determina el número de registros de la tabla. Los campos vacíos pueden incluirse (a) o excluirse (b). a) COUNT(*): si introduce un asterisco como argumento se cuentan todos los registros de datos de la tabla. b) COUNT(columna): pasar un nombre de campo como argumento cuenta únicamente los registros en los cuales el campo especificado contiene un valor. Aquellos registros en los que el campo tenga un valor nulo (es decir, que no contiene ningún valor textual ni numérico) no se incluirán en el recuento.
Máximo | MAX | Determina el valor más alto de un registro para este campo.
Mínimo | MIN | Determina el valor más bajo de un registro para este campo.
Suma | SUM | Calcula la suma de los valores de los registros para los campos asociados.
Agrupar | GROUP BY | Agrupa los datos de la consulta de acuerdo con el nombre del campo seleccionado. Las funciones se ejecutan en función de los grupos seleccionados. En SQL, esta opción se corresponde con la cláusula GROUP BY. Si se añade un criterio, esta entrada aparecerá en la subcláusula HAVING de SQL.

También se pueden introducir llamadas a funciones directamente en una expresión SQL. La sintaxis es:

SELECT FUNCTION(columna) FROM tabla.

En SQL la función para sumar, por ejemplo, se presenta del modo siguiente:

    SELECT SUM("Precio") FROM "Articulo".

Con la salvedad de la función Agrupar, las funciones anteriores se denominan funciones de totalización. Son funciones que calculan datos para crear resúmenes a partir de los resultados. También son posibles funciones adicionales que no se enumeran en el cuadro de lista. Estas dependen del motor de base de datos específico en uso y de la funcionalidad proporcionada por el controlador de Base utilizado para conectarse a ese motor de bases de datos.

Para utilizar estas funciones no enumeradas, las debe introducir manualmente en Campo.

También es posible asignar alias a las llamadas de las funciones. Si no quiere que se muestre la cadena de la consulta en la cabecera de la columna, introduzca un nombre sustituto en Alias.

En una instrucción SQL, la llamada a función correspondiente es:

SELECT FUNCTION() AS alias FROM tabla

Ejemplo:

    SELECT COUNT(*) AS recuento FROM "Articulo"

Si ejecuta esta función, no podrá insertar más columnas para la consulta que no sean argumentos de la función «Agrupar».

Ejemplos

En el ejemplo siguiente, se ejecuta una consulta a través de dos tablas: una, «Artículos», con el campo «Num_articulo», y la otra, «Proveedores», con el campo «Nombre_proveedor». Ambas tablas cuentan además con un nombre de campo en común, «Num_proveedor».

Los pasos descritos a continuación son necesarios para crear una consulta que contenga todos los proveedores que entregan más de tres artículos.

1. Inserte las tablas «Artículo» y «Proveedores» en el diseño de la consulta.

2. Enlace los campos «Num_proveedor» de las dos tablas si todavía no existiese una relación de este tipo.

3. Haga doble pulsación en el campo «Num_articulo» de la tabla «Articulo». Muestre la línea Función utilizando el menú contextual y seleccione la función Contar.

4. Introduzca >3 como criterio y desactive el campo Visible.

5. Haga doble pulsación en el campo «Nombre_proveedor» en la tabla «Proveedores» y seleccione la función Agrupar.

6. Ejecute la consulta.

Si en la tabla "Artículo" existen los campos "precio" (para el precio individual de un artículo) y "Num_proveedor" (para el proveedor del artículo), puede obtener el precio medio del artículo que proporciona un proveedor con el siguiente consulta:

1. Inserte la tabla «Artículo» en el diseño de la consulta.

2. Pulse dos veces en los campos «Precio» y «Num_proveedor».

3. Active la fila Función y seleccione la función Promedio en el campo «Precio».

4. También puede introducir «Promedio» en la fila del nombre de alias (sin las comillas).

5. Elija grupo para el campo "Num_proveedor".

6. Ejecute la consulta.

Dispone de las órdenes de menú contextual y los símbolos siguientes:

### Funciones

Muestra u oculta una fila según la selección de funciones.

### Nombre de tabla

Muestra u oculta la fila del nombre de la tabla.

### Nombre de alias

Muestra u oculta la fila del nombre de alias.

### Valores distintos

Recupera solo valores distintos de la consulta. Esto se aplica a varios registros que pueden contener varias apariciones repetitivas de datos en los campos seleccionados. Si la orden Valores distintos está activo, solo debería ver un registro en la consulta (DISTINTO). De lo contrario, verá todos los registros correspondientes a los criterios de consulta (TODOS).

Por ejemplo, si el nombre «Lucía» aparece varias veces en la base de datos de direcciones, elija la opción Valores unívocos para especificar en la consulta que el nombre «Lucía» aparezca una sola vez.

En el caso de una consulta que incluye varios campos, la combinación de valores de todos los campos debe ser inequívoca, de modo que el resultado pueda obtenerse a partir de un registro específico. Por ejemplo, supongamos que su agenda contiene «Lucía de Madrid» una vez y «Lucía de Barcelona» dos veces. La orden Valores unívocos hace que la consulta utilice los campos «apellido» y «ciudad» y devuelva como resultado «Lucía de Madrid» una vez y «Lucía de Barcelona» una vez.

En SQL, esta orden se corresponde con el predicado DISTINCT.

### Límite

Le permite limitar el número máximo de registros devueltos por una consulta.

Si se agrega una construcción Límite, obtendrá como máximo tantas filas como el número que especifique. De lo contrario, verá todos los registros correspondientes a los criterios de consulta.

### Formular las condiciones del filtro

Dispone de diversos operadores y órdenes para que formule condiciones de filtro. Además de los operadores relacionales, hay órdenes específicas de SQL que permiten consultar el contenido de los campos de la base de datos. Si utiliza estas órdenes en la sintaxis de LibreOffice, LibreOffice las convierte automáticamente a la correspondiente sintaxis de SQL por medio de un analizador interno. También es posible escribir la orden SQL directamente y evitar el analizador interno. Las tablas siguientes le ofrecen una visión de conjunto de los operadores y las órdenes:

Operador | Significado | La condición se cumple si…
--- | --- | ---
= | igual a | … el contenido del campo es idéntico a la expresión indicada. El operador = no se mostrará en los campos de la consulta. Si introduce un valor sin algún operador, se da por supuesto el operador =.
<> | no es igual a | … el contenido del campo no se corresponde con la expresión especificada.
> | mayor que | … el contenido del campo es mayor que la expresión especificada.
< | menor que | … el contenido del campo es menor que la expresión especificada.
>= | mayor que o igual a | … el contenido del campo es mayor que o igual a la expresión especificada.
<= | menor que o igual a | … el contenido del campo es menor que o igual a la expresión especificada.

Orden de LibreOffice | Orden de SQL | Significado | La condición se cumple si…
--- | --- | --- | ---
IS EMPTY | IS NULL | es nulo | … el campo no contiene ningún dato. En los campos sí/no con tres estados posibles, esta orden automáticamente efectúa una consulta sobre el estado indeterminado (ni Sí ni No).
IS NOT EMPTY | IS NOT NULL | no está vacío | … el campo no está vacío, es decir, que contiene datos.
LIKE sustitutivo (*) para un número indeterminado de caracteres sustitutivo (?) para exactamente un carácter | LIKE sustitutivo (%) para un número indeterminado de caracteres Sustitutivo (_) para exactamente un carácter | es un elemento de | … el campo de datos contiene la expresión indicada. El sustitutivo «*» indica si la expresión «x» ocurre al principio (x*), al final (*x) o dentro del contenido del campo (*x*). Puede introducir como sustitutivo en consultas SQL ya sea el carácter SQL «%» o el familiar sustitutivo de sistema de archivos (*) por medio de la interfaz de LibreOffice. Los sustitutivos (*) o (%) representan un número indeterminado de caracteres. El signo de interrogación (?) en la interfaz de LibreOffice o el guion bajo (_) en las consultas SQL se emplean para representar exactamente un carácter.
NOT LIKE | NOT LIKE | No es un elemento de | … el campo no contiene datos con la expresión indicada.
BETWEEN x AND y | BETWEEN x AND y | se comprende en el intervalo [x,y] | … el campo contiene un valor de datos comprendido entre los valores X y Y.
NOT BETWEEN x AND y | NOT BETWEEN x AND y | no se comprende en el intervalo [x,y] | … el campo contiene un valor de datos que no se comprende entre los valores X y Y.
IN (a; b; c...) Observe que se utilizan punto y coma como separadores en todos los listados de valores. | IN (a, b, c...) | contiene a, b, c… | ... el nombre del campo contiene una de las expresiones especificadas a, b, c,... Se puede especificar cualquier número de expresiones y el resultado de la consulta se determina mediante un operador booleano OR. Las expresiones a, b, c... pueden ser números o caracteres
NOT IN (a; b; c...) | NOT IN (a, b, c...) | no contiene a, b, c… | ... el campo no contiene una de las expresiones especificadas a, b, c,...
= TRUE | = TRUE | tiene el valor True (verdadero) | ... el nombre del campo tiene el valor True (verdadero).
= FALSE | = FALSE | tiene el valor False (falso) | ... el valor de los datos del campo se establece en false (falso).

### Ejemplos

='Sra.' | muestra los campos de datos que contengan «Sra.»
<'2001-01-10' | devuelve las fechas anteriores al 10 de enero de 2001
LIKE '?arro' | devuelve registros con contenidos de campo como «jarro» y «tarro».
LIKE 'S*' | devuelve registros con contenidos de campo tales como «Sol».
BETWEEN 10 AND 20 | devuelve registros con contenidos de campo entre 10 y 20. (Los campos pueden ser tanto de texto como numéricos.)
IN (1; 3; 5; 7) | devuelve registros con los valores 1, 3, 5 y 7. Si el nombre de campo contiene un número de artículo, por ejemplo, podrá crear una consulta que devuelva el artículo que contiene el número especificado.
NOT IN ('Pérez') | devuelve registros que no contienen «Pérez».

Secuencia de escape de Like: {escape 'carácter-para-codificar-con-escape'}

Ejemplo:

    SELECT * FROM Item WHERE ItemName LIKE 'The *%' {escape '*'}

El ejemplo le dará todas las entradas donde el nombre del elemento comienza con 'El *'. Esto significa que también puede buscar caracteres que, de otro modo, se interpretarían como marcadores de posición, como *, ?, _, % o el punto.

Unión externa Secuencia de codificar con escape: {oj outside-join}

Ejemplo:

    SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}

### Efectuar consultas en campos de texto

Para consultar el contenido de un campo de texto, debe poner la expresión entre comillas simples. La distinción entre letras mayúsculas y minúsculas depende de la base de datos en uso. COMO, por definición, distingue entre mayúsculas y minúsculas (aunque algunas bases de datos no lo interpretan estrictamente).

### Efectuar consultas en campos de fecha

Los campos de fecha se representan como #Date# para identificarlos. Las fechas, horas y constantes (expresiones literales) de fecha y hora usadas en las condiciones pueden ser del tipo Sintaxis de escape SQL o SQL2.

Elemento de tipo Fecha | 1.ª sintaxis de escape SQL (puede ser obsoleta) | 2.ª sintaxis de escape SQL | Sintaxis de SQL2
--- | --- | --- | ---
Fecha | {D'YYYY-MM-DD'} | {d 'YYYY-MM-DD'} | 'YYYY-MM-DD'
Hora | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]'
Fecha y hora | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]'

Ejemplo:

    SELECT {d '1999-12-31'} FROM world.years

Ejemplo:

    SELECT * FROM mytable WHERE years='1999-12-31'

Todas las expresiones de fecha (literales de fecha) deben acotarse con comillas rectas simples. (Consulte el manual de referencia de la base de datos y el conector concretos que utiliza para obtener más detalles al respecto.)

### Efectuar consultas en campos sí/no

Para efectuar consultas en campos sí/no, utilice esta sintaxis para archivos dBASE:

Estado | Criterio de consulta | Ejemplo
--- | --- | ---
Sí | para tablas dBASE: no es igual a ningún valor dado | =1 devuelve todos los registros donde el campo Sí/No tiene el estado «Sí» o «Activado» (seleccionado en negro),
No | . | =0 devuelve todos los registros en los que el campo Sí/No tiene el estado «No» o «Desactivado» (ninguna selección).
Nulo | IS NULL | IS NULL muestra todos los registros de datos en los que el campo Sí/No no contiene ni el criterio Sí ni el criterio No (selección en gris).

La sintaxis depende del sistema de base de datos utilizado. También debe tener en cuenta que los campos Sí/No se pueden definir de manera diferente (solo 2 estados en lugar de 3).

### Consultas con parámetros

Las consultas con parámetros permiten al usuario introducir valores en el momento de la ejecución. Estos valores se usan junto con los demás criterios para seleccionar los registros que se mostrarán. Cada uno de esos valores tiene un nombre de parámetro asociado que se usa para mostrarlo al usuario en el momento de ejecutar la consulta.

Los nombres de los parámetros van precedidos de dos puntos, tanto en la vista de diseño como en la vista SQL. Se pueden usar en cualquier sitio donde quiera que aparezca el valor. Si el mismo valor debe aparecer más de una vez, se usa el mismo nombre de parámetro.

En el caso más simple, en el que el usuario introduce un valor para una relación de igualdad, el nombre del parámetro, precedido por dos puntos, simplemente se introduce en la fila Criterio. En el modo SQL, esto debe escribirse como WHERE "Campo" = :Nombre_del_parámetro

Los nombres de los parámetros no pueden contener ninguno de estos caracteres: <espacio>`!"$%^*()+={}[]@'~#<>?/,. Estos nombres no pueden ser iguales a los nombres de los campos o las palabras reservadas de SQL, pero pueden ser iguales a los alias.

Una construcción útil para seleccionar registros basados en partes del contenido de un campo de texto es agregar una columna oculta con "COMO '%' || :Parte_del_campo || '%'" como el criterio. Esto seleccionará registros con una coincidencia exacta. Si se desea una prueba que no distinga entre mayúsculas y minúsculas, una solución es usar LOWER (Nombre_Campo) como campo y COMO LOWER ( '%' || :Parte_del_campo || '%' ) como criterio. Tenga en cuenta que los espacios en el criterio son importantes; si se omiten, el analizador de SQL interpreta el criterio completo como una cadena que debe coincidir. En modo SQL esto debe escribirse como LOWER ( "Nombre_Campo" ) COMO LOWER ( '%' || :Parte_del_campo || '%' ).

Las consultas con parámetros se pueden utilizar como origen para los datos de los subformularios, para permitir que el usuario restrinja los registros mostrados.

### Entrada de parámetros

El cuadro de diálogo Entrada de parámetros solicita al usuario que ingrese los valores de los parámetros. Introduzca un valor para cada parámetro de consulta y confirme pulsando en Aceptar u oprimiendo Intro.

Los valores proporcionados por el usuario pueden estar compuestos de cualesquier caracteres admisibles en SQL para el criterio relevante; esto puede depender del sistema de bases de datos subyacente.

Es posible utilizar los caracteres comodín «%» (cadena arbitraria) y «_» (carácter único arbitrario) de SQL como parte del valor para recuperar registros con criterios más complejos.

## Modo SQL

SQL es la sigla inglesa de «Structured Query Language» (‘lenguaje de consultas estructuradas’) y describe las instrucciones que se efectuarán para actualizar y gestionar bases de datos relacionales.

Con LibreOffice no necesita ningún conocimiento de SQL para la mayoría de las consultas, ya que no tiene que ingresar el código SQL. Si crea una consulta en el modo de diseño de consultas, LibreOffice convierte automáticamente sus instrucciones a la sintaxis SQL correspondiente. Si, con la ayuda del botón Activar/desactivar la vista Diseño, cambia a la vista SQL, puede ver las instrucciones en código SQL para una consulta que ya se ha creado.

Puede formular su consulta directamente en código SQL. Tenga en cuenta, sin embargo, que la sintaxis exacta depende del sistema de base de datos que utilice.

Si introduce código SQL manualmente, puede crear consultas específicas de SQL que no serían posible mediante la interfaz gráfica en modo de diseño. Estas consultas deben ejecutarse en el modo nativo SQL.

Al pulsar el icono Ejecutar orden SQL directamente en el modo SQL, puede formular una consulta que no será procesada por LibreOffice, sino que se enviará directamente al motor de la base de datos.