Module
Contents
Index 🔎︎

# Diseñar una consulta

La vista Diseñu de consulta dexa la creación y edición de consultes de bases de datos.

P'aportar a esti comandu...

Na ventana d'un ficheru de base de datos, faiga clic nel iconu Consultes; de siguío, escueya Editar - Editar

La mayoría de les bases de datos utilicen consultes pa peñerar o ordenar les tables de bases de datos por qu'amuesen los rexistros nel equipu. Les vistes apurren les mesmes funciones que les consultes, pero nel sirvidor. Si la base de datos atopar nun sirvidor qu'almite vistes, pue utilizar felicidaes vistes pa peñerar los rexistros del sirvidor con cuenta d'acelerar el tiempu de visualización.

Al escoyer el comandu Crear vista de la ficha Tables d'un documentu de base de datos, va ver la ventana Diseñu de vista que ye similar a la ventana Diseñu de consulta que se describe equí.

Cuando se crea una consulta caltién la estructura de la ventana de Diseñu de consultes, lo cual nun asocede cuando se crea una vista.

## La vista Diseñu

Pa crear una consulta, faiga clic nel iconu Consultes d'un documentu de base de datos y, de siguío, faiga clic en Crear consulta en vista Diseñu.

La consulta se definen nel panel inferior de la vista Diseñu. Pa definir una consulta, especifique los nomes de campos de la base de datos que se deben incluyir, según los criterios de visualización de los campos. Pa reorganizar les columnes nel panel inferior de la vista Diseñu, arrastre la testera a una nueva posición, o escueya la columna y calque les tecles Ctrl Ctrl
+ tecla de cursor.

Na parte cimera de la ventana de la vista Diseñu de consulta, amuésense los iconos de les barres Diseñu de consulta y Diseñu.

Si deseya probar una consulta, faiga doble clic nel nome de la consulta nel documentu de base de datos. La resultancia de la consulta amosar nuna tabla similar a la vista d'orixe de datos. Nota: la tabla que s'amuesa ye temporal.

### Tecles de la vista Diseñu de consulta

Tecla | Función
F4 | Vista previa
F5 | Executar consulta
F7 | Amestar tabla o consulta

## Esaminar

When you open the query design for the first time, you see a dialog in which you must first select the table or query that will be the basis for your new query.

Faiga doble clic nos campos p'amestalos a la consulta. Arrastre y coloque pa definir relaciones.

Mientres el diseñu d'una consulta nun ye posible modificar les tables escoyíes.

### Desaniciar tables

Pa desaniciar una tabla de la vista de diseñu, calque nel marxe cimeru de la ventana de la tabla y active el menú contestual. Cola orde Desaniciar va desaniciar la tabla de la vista de diseñu. Otra opción ye calcar la tecla (Supr).

### Mover tables y modificar el so tamañu

Les tables y el so tamañu puen definise a voluntá. Pa mover una tabla calcar col mur'l marxe cimeru y llévase a la posición deseyada. P'aumentar o menguar el tamañu de presentación, arrastre'l borde escontra una de les esquines.

## Relaciones ente tables

Les relaciones de datos que puen haber ente un nome de campu d'una tabla y unu d'otra tabla puen utilizase pa les consultes.

Si, por exemplu, dispon d'una fueya de cálculu d'artículos identificaos por aciu d'un númberu d'artículu y una fueya de cálculu de veceros na que se rexistren tolos artículos pidíos por un veceru por aciu el númberu d'artículu correspondiente, entós esiste una rellación ente los campos de datos "númberu d'artículu". Si deseya crear una consulta que devuelva tolos artículos pidíos por un veceru, tendrá de recuperar datos de dos fueya de cálculu. Pa ello tendrá d'indicar a LibreOffice cuál ye la rellación ente los datos conteníos en dambes fueyes.

Pa faelo, calque un campu de datos d'una tabla (p. ex. el campu de datos "Referencia" de la tabla de veceros) y, cola tecla del mur calcada, abasnar al campu de datos de la otra tabla ("Referencia" de la tabla d'artículos). Cuando suelte'l botón del mur, amuésase una llinia que enllaza los dos campos nos dos ventanes. La condición de que'l conteníu de los dos campos de datos tien de ser idénticu introducir na consulta SQL resultante.

Namái pue crease una consulta basada en delles fueyes rellacionaes si utilízase LibreOffice como interfaz pa una base de datos relacional.

Nuna consulta nun ye posible aportar a tables de bases de datos distintes. Les consultes de delles tables namái puen crease dientro d'una mesma base de datos.

### Definir el tipu de enllaz

Al faer una doble pulsación na llinia de conexón ente dos campos enllazaos o al aportar a la orde de menú Inxertar - Rellación nueva, pue especificase el tipu de enllaz nel diálogu Relaciones.

Como alternativa, prima Tabulador hasta que la llinia escuéyase, depués prima MAYUSCULA+F10 p'amosar el menú contestual onde tien d'escoyerEditar. Delles bases de datos solo soporten un subconxuntu de posibles tipos de conexón.

### Desaniciar relaciones

Pa desaniciar los enllaces ente dos tables, escueya col mur la llinia de enllaz y calque la tecla (Supr).

Tamién pue desaniciar les respectives entraes en Campos usaos nel diálogu Relaciones. O pue calcar el tabulador hasta que'l vector de conexón quede destacáu y depués calcar Mayús+F10 p'abrir el menú contestual y escoyer la orde Desaniciar.

## Definir una consulta

Escueya condiciones pa definir la consulta. Cada columna de la tabla de diseñu aceuta un campu de datos pa la consulta. Les condiciones d'una filera enllazar con una espresión lóxica Y.

### Definir campu de datos

Escueya en primer llugar tolos nomes de campu de les tables que deseye amestar a la consulta. Pa ello utilice la téunica d'abasnar y soltar o faiga una doble pulsación nos nomes de campu de la ventana de la tabla. Por aciu abasnar y soltar, utilice'l mur p'abasnar un nome de campu de la ventana de la tabla al área inferior de la ventana de diseñu de consulta. Al faelo pue decidir en qué columna deseya amestar el campu. Escueya un nome de campu faciendo una doble pulsación nél. va amestar a la siguiente columna llibre.

### Desaniciar nomes de campos

Pa desaniciar un campu de datos de la consulta, calque col mur na testera de la columna del campu y active el comandu Desaniciar del menú contestual de la columna.

### Guardar consulta

Guarde la consulta col iconu Guardar de barra Estándar. Un diálogu solicita l'asignación d'un nome pa la consulta. Si la base de datos almite esquemes, tamién pue especificase un esquema.

#### Esquema

Escriba'l nome del esquema que s'asignó a la consulta o vista de tabla.

#### Nome de la consulta vista de tabla

Escriba'l nome de la vista de tabla o consulta.

### Peneráu de datos

Pa peñerar los datos de la consulta, estableza les preferencies deseyaes nel área inferior de la vista Diseñu. Dispon de les siguientes llinies:

#### Campu

Escriba'l nome del campu de datos al que fai referencia na consulta. Los parámetros de les fileres inferiores faen referencia a esti campu. Si activa una caxella calcando nella col mur va ver un botón de flecha que-y dexará escoyer un campu. La opción "Nome de tabla.*" escueye tolos campos de datos y los criterios son válidos pa tolos campos de la tabla.

#### Alies

Especifica un alies. Esti alies va amosar na consulta en llugar del nome de campu. D'esta forma puen emplegase etiquetes de columna definíes pol usuariu. Por exemplu, si'l campu de datos denominar NºRef. y deseya que na consulta apaeza NúmRef., escriba NúmRef. como alies.

En SQL los alies defínense como s'amuesa de siguío:

SELECT column AS alíes FROM table.

Por exemplu:

SELECT "Ref." AS Referencia FROM "Artículos"

#### Tabla

Equí amuésase la tabla de base de datos correspondiente al campu de datos escoyíu. Si activa una caxella faciendo clic nella, amuésase una flecha que dexa escoyer otra tabla de la consulta actual.

#### Ordenar

Si prime la caxella, pue escoyer ente les opciones d'ordenamientu: ascendente, descendente y ensin ordenamientu. Los campos de testu van ordenase alfabéticamente, los campos numbéricos n'orde numbéricu. Pa la mayoría de les bases de datos, l'alministrador pue definir les opciones d'ordenamientu.

#### Visible

Si escueye la propiedá Visible pa un campu de datos, dichu campu ver na consulta. Si namái s'emplega un campu de datos pa formular una condición, nun ye necesariu que s'amuese.

#### Criterios

Especifica los criteriosde filtru del conteníu del campu de datos.

#### o

Introduza en cada filera un criteriu adicional pal peneráu. Los distintos criterios d'una columna enllazar por una rellación del tipu O.

Per otra parte, ye posible introducir una filera pa funciones por aciu el menú contestual de los títulos de filera nel área inferior del diseñu de consulta:

### Funciones

Les funciones que puedan executase dependen de la base de datos.

Si trabaya cola base de datos HSQL, el cuadru de llista na filera Función inclúi les siguientes opciones:

Opción | SQL | Efeutu
Ensin función |  | Nun s'executa nenguna función
Promediu | AVG | Calcula la media aritmética d'un campu.
Count | COUNT | Determina'l númberu de rexistros na tabla. Los campos baleros puen cuntase (a) o non (b). a) COUNT(*): Si introduz un asteriscu como argumentu calculen tolos rexistros de datos de la tabla. b) COUNT(column): Si introduz un campu de datos como argumentu, namái se calculen los campos que los sos campos de datos contienen un valor. Valorar cero (campos baleros) nun se tienen en cuenta.
Maximum | MAX | Calcula'l valor máximu d'un campu.
Mínimu | MIN | Calcula'l valor mínimu d'un campu.
Sum | SUM | Calcula la suma de valores de los campos correspondientes.
Arrexuntar | GROUP BY | Arrexunta los datos de la consulta según el campu escoyíu. Les funciones executar según los grupos especificaos. En SQL, esta opción correspuende a la clausa GROUP BY. Si amiéstase un criteriu, esta entrada apaez en SQL HAVING.

Tamién puen introducise llamaes a funciones directamente nuna espresión SQL. La sintaxis ye:

SELECT FUNCTION(column) FROM table.

En SQL la función pa sumar, por exemplu, presentar del mou siguiente:

SELECT SUM("Precios") FROM "Artículos".

Sacante la función Arrexuntar, les funciones anteriores conócense como funciones d'Agregáu. Estes funciones dexen el cálculu de de datos pa llograr resultancies en forma resumida. Amás son posibles funciones que nun apaecen nel cuadru de llista. Estes dependen nel sistema de base de datos usáu y el controlador utilizáu por Base.

Pa utilizar otres funciones ensin atopar nel cuadru de llista, tien d'ingresales en Campu.

Tamién puen asignase alies a les funciones. Por que nel títulu de la columna nun s'amuese'l nome de la función, introduza'l nome deseyáu en Alies.

Na instrucción SQL l'activación de la función presentar cola forma siguiente:

SELECT FUNCTION() AS alíes FROM table

Exemplu:

SELECT COUNT(*) AS cantidad FROM "Artículos"

Al executar una función nun ye posible amestar más columnes a la consulta, nun siendo que a diches columnes aplíquese-yos la función Arrexuntar.

Exemplos

Nel siguiente exemplu realízase una consulta en dos tables: una tabla "Artículos" col campu "Referencia" y otra tabla, "Provisores", col campu "nome_provisor". Amás, dambes tables disponen d'un campu de datos común llamáu "num_provisor".

Pa crear una consulta que contenga tolos provisores que suministren más de tres artículo, ye necesariu siguir los pasos siguientes:

1. Introducir les tables "Artículos" y "Provisores" nel diseñu de la consulta.

2. Rellacionar los campos "num_provisor" de dambes tables, sacante si yá s'estableció una rellación ente elles.

3. Calcar dos vegaes nel campu "Referencia" de la tabla "Artículos". Amosar la filera Función por aciu el menú contestual y escoyer la cantidá de la función.

4. Introducir >3 como criteriu y anubrir el campu visible.

5. Faiga clic dos vegaes nel campu "nome_provisor" de la tabla "Provisores" y escoyer la función Arrexuntar.

6. Execute la consulta.

Si na tabla "Artículu" esiste'l campu "Preciu" (preciu unitariu d'un artículu) y "Num_provisor" (provisor del artículu), el preciu mediu qu'aplica un provisor calcular cola siguiente consulta:

1. Inxertar la tabla "Artículos" en Diseñar consulta.

2. Calcar dos vegaes nel campu "Preciu" y nel campu "Num_provisor".

3. Activar la filera Función y escoyer la función Promediu nel campu "Preciu".

4. Opcionalmente pue introducise l'alies "Promediu" na filera (ensin comines).

5. Escoyer Arrexuntar nel campu "Num_provisor".

6. Execute la consulta.

Esisten los comandos de menú y símbolos siguientes:

### Funciones

Amuesa o anubre una filera pa escoyer funciones.

### Nome de tabla

Amuesa o anubre la filera del nome de la tabla.

### Nome del Alies

Amuesa o anubre la filera del alies.

### Valores unívocos

Aplica a la consulta namái valores inequívocos. Referir a los rexistros que contienen datos qu'apaecen delles vegaes nos campos escoyíos. Si escoyóse la opción Valores inequívocos namái va poder ver un rexistru que cumpla los criterios de la consulta (DISTINCT). En casu contrariu, va poder ver tolos rexistros correspondientes a los criterios de la consulta (ALL).

Por exemplu, si'l nome "Pérez" apaez delles vegaes na base de datos de direiciones, escueya la opción Valores inequívocos pa especificar na consulta que'l nome "Pérez" apaeza una sola vegada.

Nel casu d'una consulta qu'inclúi dellos campos, la combinación de valores de tolos campos tien de ser inequívoca, de cuenta que la resultancia pueda llograse a partir d'un rexistru específicu. Por exemplu, supongamos que la so axenda contién "Pérez de Madrid" una vegada y "Pérez de Barcelona" dos vegaes. La orde Valores inequívocos fai que la consulta utilice los campos "apellíu" y "ciudá" y devuelva como resultáu "Pérez de Madrid" una vegada y "Pérez de Barcelona" una vegada.

En SQL, esta orde correspuende al predicáu DISTINCT.

### Llendes

Permite-y maximizar la cantidá de rexistros que devuelve la consulta.

Si hai añadida una Llende, algamará como muncho tantes fileres como'l númberu que diera. Otramiente, verá tolos rexistros que correspuendan colos criterios de la consulta.

### Formular condiciones de filtru

Dispon de diversos operadores y ordes pa formular condiciones de filtru. Amás de los operadores de rellación, SQL dispon d'ordes específiques pa consultar el conteníu de campos de base de datos. Si utiliza diches ordes na sintaxis de LibreOffice, LibreOffice va convertir automáticamente a la sintaxis correspondiente de SQL. Tamién pue introducir la orde SQL directamente. Nes tables siguientes ufiértase un resume d'el operadores y ordes:

Operador | Significáu | La condición cumple si...
= | equal to | ... el conteníu del campu ye idénticu a la espresión introducida. Nos campos de consulta nun s'amuesa l'operador =; al introducir un valor ensin operador, adóptase l'operador =.
<> | not equal to | ... el conteníu del campu nun se correspuende cola espresión introducida.
> | greater than | ... el conteníu del campu ye mayor que la espresión introducida.
< | less than | ... el conteníu del campu ye menor que la espresión introducida.
>= | greater than or equal to | ... el conteníu del campu ye idénticu o mayor que la espresión introducida.
<= | less than or equal to | ... el conteníu del campu ye menor o igual que la espresión introducida.

Comandu de LibreOffice | Comandu SQL | Significáu | La condición cumple si...
IS EMPTY | IS NULL | ye nulu | ... The value of the field is empty. For Yes/No fields with three states, this command automatically queries the undetermined state (neither Yes nor No).
IS NOT EMPTY | IS NOT NULL | is not empty | ... el campu de datos nun ta baleru.
LIKE (placeholder * pa un númberu cualesquier de caráuteres placeholder ? pa esactamente un caráuter) | LIKE (% placeholder pa cualquier númberu de caráuteres Placeholder _ pa un caráuter esactamente) | is an element of | ... el campu de datos contién la espresión introducida. Los comodinos (*) indiquen si la espresión x atópase al entamu (x*), a la fin (*x) o dientro del conteníu del campu (*x*). Nes consultes SQL utilice % como comodín SQL y na superficie de LibreOffice pue utilizar el comodín habitual (*) del sistema de ficheros. Los comodinos * o % sustitúin un númberu cualesquier de caráuteres. Na superficie de LibreOffice emplégase como comodín pa representar esactamente un solu caráuter el signu d'interrogación (?) y nes consultes SQL, el guión de sorrayáu (_).
NOT LIKE | NOT LIKE | Is not an element of | ... el campu de datos nun contién la espresión introducida.
BETWEEN x AND y | BETWEEN x AND y | entendíu nel intervalu [x,y] | ... el campu de datos contién un valor entendíu ente x y y.
NOT BETWEEN x AND y | NOT BETWEEN x AND y | non entendíu nel intervalu [x,y] | ... el campu de datos contién un valor ensin entender ente x y y.
IN (a; b; c...) Recuerde que'l puntu y coma sirve de separador en toles llistes de valores | IN (a, b, c...) | contains a, b, c... | ... el campu de datos contién una de les espresiones introducíes a, b, c,... Puen introducise munches espresiones; la resultancia de la consulta llograr con un operador O. Les espresiones a, b, c... puen ser tantu cifres como caráuteres
NOT IN (a; b; c...) | NOT IN (a, b, c...) | does not contain a, b, c... | ... el campu de datos nun contién una de les espresiones introducíes a, b, c,...
= TRUE | = TRUE | tien el valor True | ... el campu de datos tien el valor Verdaderu.
= FALSE | = FALSE | tien el valor False | ... el campu de datos tien el valor False.

### Exemplos

='Ms.' | amuesa los campos de datos col conteníu "Ms."
<'2001-01-10' | returns dates that occurred before January 10, 2001
LIKE 'g?ve' | devuelve los nomes de los campos que contienen tantu "dimi" como "dame".
LIKE 'S*' | amuesa los campos de datos con conteníos como "Sun".
BETWEEN 10 AND 20 | amuesa los campos de datos con conteníos entendíos ente los valores 10 y 20. (Pue tratase tantu de campos de testu y como de cifres.)
IN (1; 3; 5; 7) | amuesa los campos de datos colos valores 1, 3, 5, 7. Si, por exemplu, el campu de datos contién una referencia, pue definise una consulta qu'amuese l'artículu en cuestión col númberu introducíu.
NOT IN ('Perez') | amuesa los campos de datos que nun contienen "Pérez".

LikeSecuencia d'escape: {escape 'escape-character'}

Por exemplu: select * from Articulo where Nom_articulo like 'The *%' {escape '*'}

Esti exemplu apurre toles entraes nes que'l nome del artículu empieza con 'The *'. Tamién ye posible guetar caráuteres, que de lo contrario s'interpreten como comodinos, por exemplu *, ?, _, % o'l puntu.

Outer Join Secuencia d'escape: {oj outer-join}

Por exemplu: select articulo.* from {oj articulo LEFT OUTER JOIN pidíos ON referencia=pidíos.ANR}

### Consultes en campos de testu

Pa consultar el conteníu d'un cuadru de testu a cencielles hai que definir la espresión ente comines. Nun s'estrema ente mayúscules y les minúscules.

### Consultes en campos de feches

Date fields are represented as #Date# to clearly identify them as dates. Date, time and date/time constants (literals) used in conditions can be of either the SQL Escape Syntax type, or default SQL2 syntax.

Date Type Element | SQL Escape syntax #1 - may be obsolete | SQL Escape syntax #2 | SQL2 syntax
Date | {D'AAAA-MM-DD'} | {d 'AAAA-MM-DD'} | {D'AAAA-MM-DD'}
Time | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]'
DateTime | {D'AAAA-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]'

Exemplu: select {d '1999-12-31'} from world.years

Example: select * from mytable where years='1999-12-31'

All date expressions (literals) must be enclosed with single quotation marks. (Consult the reference for the particular database and connector you are using for more details.)

### Consulta de campos Sí/Non

Pa peñerar los campos Si/Non de tables dBase, use la siguiente sintaxis:

Condición | Criteriu de consulta | Exemplu
Yes | en tables dBASE: nun ye igual a cualquier valor dáu | =1 apurre tolos rexistros de datos nos que'l campu Sí/Nun contién el criteriu "Sí" o "activáu" (caxellu señaláu).
Non | . | =0 apurre tolos rexistros de datos nos que'l campu Sí/Nun contién el criteriu "Non" o "desactiváu" (caxellu non señaláu).
Null | IS NULL | IS NULL amuesa tolos rexistros de datos nos que'l campu Sí/Non nun contién nin el criteriu Sí nin el criteriu Non (caxellu en gris).

La sintaxis depende del sistema de base de datos utilizáu. Tien De tener en cuenta que los campos Sí/non puen definise de forma distinta (namái 2 estaos en llugar de 3).

### Consultes de parámetros

Parameter queries allow the user to input values at run-time. These values are used within the criteria for selecting the records to be displayed. Each such value has a parameter name associated with it, which is used to prompt the user when the query is run.

Parameter names are preceded by a colon in both the Design and SQL views of a query. This can be used wherever a value can appear. If the same value is to appear more than once in the query, the same parameter name is used.

In the simplest case, where the user enters a value which is matched for equality, the parameter name with its preceding colon is simply entered in the Criterion row. In SQL mode this should be typed as WHERE "Field" = :Parameter_name

Parameter names may not contain any of the characters <space>`!"$%^*()+={}[]@'~#<>?/,. They may not be the same as field names or SQL reserved words. They may be the same as aliases.

A useful construction for selecting records based on parts of a text field's content is to add a hidden column with "LIKE '%' || :Part_of_field || '%'" as the criterion. This will select records with an exact match. If a case-insensitive test is wanted, one solution is to use LOWER (Field_Name) as the field and LIKE LOWER ( '%' || :Part_of_field || '%' ) as the criterion. Note that the spaces in the criterion are important; if they are left out the SQL parser interprets the entire criterion as a string to be matched. In SQL mode this should be typed as LOWER ( "Field_Name" ) LIKE LOWER ( '%' || :Part_of_field || '%' ).

Parameter queries may be used as the data source for subforms, to allow the user to restrict the displayed records.

### Entrada de parámetros

The Parameter Input dialog asks the user to enter the parameter values. Enter a value for each query parameter and confirm by clicking OK or typing Enter.

The values entered by the user may consist of any characters which are allowable for the SQL for the relevant criterion; this may depend on the underlying database system.

The user can use the SQL wild-card characters "%" (arbitrary string) or "_" (arbitrary single character) as part of the value to retrieve records with more complex criteria.

## Mou SQL

SQL son les sigles de "Structured Query Language" y ye un llinguaxe que define les instrucciones pa consultar, anovar y alministrar bases de datos relacionales.

En LibreOffice nun ye necesariu tener conocencies de SQL pa crear la mayor parte de consultes, yá que nun ye necesariu escribir el códigu SQL. Si crea una consulta en Diseñu de consulta, LibreOffice convierti automáticamente les instrucciones a la sintaxis SQL correspondiente. Si utiliza'l botón Activar o desactivar la vista Diseñu pa camudar la vista SQL, puen vese los comandos correspondientes a una consulta creada con anterioridá.

La consulta pue formulase directamente en códigu SQL. Sicasí, tien de tenese en cuenta que la sintaxis especial depende del sistema de base de datos que s'utilice.

Al introducir el códigu SQL de forma manual ye posible crear consultes específiques en SQL que nun seyan compatibles coles superficies gráfiques del Diseñu de consulta. Estes consultes tienen d'executase nel mou SQL nativu.

Si calca'l símbolu Executar directamente la orde SQL na vista SQL va poder formular una consulta ensin procesar por LibreOffice.