Ajuda del LibreOffice 25.2
La Vista del disseny de la consulta vos permet crear i editar una consulta de la base de dades.
La majoria de les bases de dades utilitzen consultes per a filtrar o ordenar les taules per a la visualització de registres en un ordinador. Les vistes ofereixen les mateixes funcionalitats que les consultes, però des d'un servidor. Si la vostra base de dades és en un servidor que permet l'ús de vistes, les podreu utilitzar per a filtrar els registres en el servidor i, d'aquesta manera, accelerar-ne el temps de visualització.
Si seleccioneu l'ordre Crea una vista de la pestanya Taules en un document de base de dades, visualitzareu la finestra Disseny de la vista, que és molt semblant a la finestra Disseny de la consulta que es descriu ací.
La disposició de la finestra Disseny de la consulta s'emmagatzema amb una consulta creada, però en canvi no es pot emmagatzemar amb una vista creada.
Per a crear una consulta, feu clic a la icona Consultes d'un document de base de dades, i a continuació a Crea una consulta en vista de disseny.
A la subfinestra inferior de la Vista de disseny és on definiu la consulta. Per a definir una consulta, especifiqueu els noms dels camps de la base de dades que cal incloure i els criteris per mostrar els camps. Per a reorganitzar les columnes a la subfinestra inferior de la Vista de disseny, arrossegueu una capçalera de columna a una ubicació nova, o seleccioneu la columna i premeu +tecla de fletxa.
Les icones de les barres Disseny de la consulta i Disseny es mostren a la part superior de la finestra Vista de disseny de la consulta.
Si voleu provar el funcionament d'una consulta, feu doble clic al nom d'aquesta consulta en el document de base de dades. El resultat de la consulta es mostrarà en una taula semblant a la Vista de fonts de dades. Nota: la taula que es mostrarà serà temporal.
| Tecla | Funció | 
|---|---|
| F4 | Previsualitza | 
| F5 | Executa la consulta | 
| F7 | Afig la taula o consulta | 
En obrir el disseny de consultes per primera vegada, veureu un diàleg al qual haureu de seleccionar la taula o la consulta que s'utilitzarà per a la consulta nova.
Feu doble clic als camps que vulgueu per a afegir-los a la consulta. Arrossegueu i deixeu anar per a definir relacions.
Quan estigueu dissenyant una consulta no podreu modificar les taules seleccionades.
Per a suprimir una taula de la Vista de disseny, feu clic a la vora superior de la finestra de la taula i obriu el menú contextual, on podreu triar l'ordre Suprimeix. De manera alternativa, podeu prémer la tecla Supr.
Podeu redimensionar i organitzar les taules segons les vostres preferències. Per a moure una taula, arrossegueu-ne la vora superior fins a la posició que vulgueu. Podeu augmentar o reduir la mida d'una taula col·locant la busca del ratolí en una vora o una cantonada de la taula i arrossegant-lo fins aconseguir la mida desitjada.
En cas que hi haja dades relacionades entre el nom de camp d'una taula i el nom de camp d'una altra taula, podreu utilitzar aquestes relacions per a la vostra consulta.
Així, si per exemple disposeu, d'una banda, d'un full de càlcul per a articles identificats amb un número d'article i, de l'altra, d'un altre full de càlcul per a clients en el qual registreu tots els articles que aquests clients sol·liciten mitjançant els números d'article corresponents, hi haurà una relació entre els dos camps de dades «número d'article». D'aquesta manera, si voleu crear una consulta que torne tots els articles sol·licitats per un client, haureu de recuperar les dades corresponents dels dos fulls de dades. Per a fer-ho, haureu d'informar el LibreOffice sobre la relació que existeix entre les dades dels dos fulls de càlcul.
Per a indicar aquesta relació, feu clic al nom d'un camp d'una taula (per exemple, al nom del camp «Número-article» de la taula Clients), manteniu premut el botó del ratolí i arrossegueu el nom del camp fins a l'altra taula (fins a «Número-article» de la taula Articles). Quan deixeu anar el botó del ratolí, apareixerà una línia que connectarà els dos camps de les dues finestres. La condició corresponent, segons la qual els dos noms de camp hauran de ser idèntics, s'introduirà a la consulta SQL resultant.
Només podeu crear una consulta basada en diversos fulls relacionats si utilitzeu el LibreOffice com a interfície per a una base de dades relacional.
No podeu accedir a taules de bases de dades diferents en una consulta. Només podeu crear consultes en què intervinguin diverses taules en una sola base de dades.
Si feu un doble clic a la línia que connecta dos camps relacionats o executeu la comanda de menú Inserir - Nova Relació, podeu especificar el tipus de relació al diàleg Relacions.
També podeu prémer la tecla Tab fins que la línia estiga seleccionada, i a continuació Maj+F10 per a mostrar el menú contextual i triar-hi l'ordre Edita. Hi ha bases de dades que només admeten un subconjunt de tots els tipus d'unió possibles.
Per a suprimir la relació entre dues taules, feu clic a la línia de connexió i premeu la tecla Supr.
També podeu suprimir les entrades respectives a Camps implicats del diàleg Relacions, o bé podeu prémer la tecla Tab fins que el vector de connexió quede realçat i, a continuació, Maj+F10 per a obrir el menú contextual i seleccionar-hi l'ordre Suprimeix.
Seleccioneu les condicions per a definir la consulta. Cada columna de la taula de disseny accepta un camp de dades per a la consulta. Les condicions d'una fila s'enllacen amb el booleà AND.
En primer lloc, seleccioneu tots els noms dels camps de les taules que vulgueu afegir a la consulta. Per a fer-ho, podeu arrossegar i deixar anar o bé fer doble clic a un nom de camp a la finestra de la taula. Si opteu pel primer mètode, utilitzeu el ratolí per a arrossegar un nom de camp des de la finestra de la taula fins a l'àrea inferior de la finestra de disseny de la consulta. D'aquesta manera, podreu decidir a quina columna voleu afegir el camp. Podeu seleccionar un nom de camp fent-hi doble clic. En aquest cas, s'afegirà a la columna lliure següent en la finestra de disseny de la consulta.
Per a suprimir un nom de camp de la consulta, feu clic a la capçalera de columna del camp i trieu l'ordre Suprimeix en el menú contextual que es mostrarà per a la columna.
Utilitzeu la icona Guarda de la barra Estàndard per a guardar la consulta. Visualitzareu un diàleg que vos sol·licitarà un nom per a la consulta. Si la base de dades admet esquemes, també en podreu indicar un.
Introduïu el nom de l'esquema assignat a la consulta o a la vista de taula.
Introduïu el nom de la consulta o de la vista de taula.
Per a filtrar les dades de la consulta, definiu els criteris desitjats a la zona inferior de la finestra de disseny de la consulta. Hi ha disponibles les següents opcions:
Introduïu el nom del camp de dades al qual es fa referència a la consulta. Tots els ajustos realitzats a l'opció de filtre de files fan referència a aquest camp. Si activeu una cel·l'amb un clic del ratolí, veureu un botó fletxa que vos permetrà seleccionar un camp. L'opció "Nom de la taula. *" selecciona tots els camps de dades amb resultat que els criteris especificats s'aplicaran a tots els camps de la taula.
Especifica un àlies. Aquest àlies es mostrarà a la consulta en lloc del nom del camp. Això permet utilitzar etiquetes de columna definides per l'usuari. Per exemple, si el camp de dades es diu PtNo i, en lloc d'aquest nom, voleu que PartNum aparega a la consulta, introduïu PartNum com a àlies.
En una declaració SQL, els àlies es defineixen segons:
SELECT columna AS àlies FROM taula
Per exemple:
SELECT "PtNo" AS "PartNum" FROM "Parts"
Mostra la taula de la base de dades corresponent al camp de dades seleccionat. Si activeu aquesta cel·la amb un clic del ratolí, apareixerà una fletxa que permet seleccionar una taula diferent per a la consulta actual.
Fent clic a aquesta cel·la, podreu triar una opció d’ordenació: ascendent, descendent i sense classificar. Els camps de text s’ordenaran alfabèticament i els numèrics numèricament. En la major part de les bases de dades els administradors poden definir les opcions d’ordenació.
Si marqueu la propietat com a Visible pel camp de dades, aquest camp es visualitzarà a la consulta resultant. Si només utilitzeu un camp per formular una condició o fer un càlcul, no necessàriament cal que es mostre.
Especifica un primer criteri amb què s'ha de filtrar el contingut del camp de dades.
Podeu introduir un criteri de filtre addicional a cada fila. Diversos criteris en una sola columna s’interpretaran com a O booleà.
També podeu utilitzar el menú contextual de les capçaleres de fila, a la zona inferior de la finestra de disseny de la consulta, per inserir un filtre basat en una funció:
Les funcions disponibles depenen de les proporcionades pel motor de base de dades.
Si treballeu amb una base de dades HSQL incrustada, el quadre de llista de la fila Funció ofereix les següents opcions:
| Opció | SQL | Efecte | 
|---|---|---|
| Cap funció | No s'executarà cap funció. | |
| Mitjana | AVG | Calcula la mitjana aritmètica d'un camp. | 
| Comptatge | COUNT | Determina el nombre de registres d'una taula. Els camps buits es poden comptar (a) o excloure (b). a) COUNT(*): En passar un asterisc com a argument, es comptabilitzen tots els registres de la taula. b) COUNT(column): Passar el nom d'un camp com a argument només compta els registres en què el camp especificat conté un valor. Els registres en què el camp té un valor nul (és a dir, no conté cap valor textual o numèric) no es comptabilitzaran. | 
| Màxim | MAX | Determina el registre amb el valor més gran per a aquest camp. | 
| Mínim | MIN | Determina el registre amb el valor menor per a aquest camp. | 
| Suma | SUM | Calcula la suma dels valors dels registres per als camps associats. | 
| Agrupa | GROUP BY | Agrupa les dades d'acord amb el nom del camp seleccionat. Les funcions s’executen segons els grups especificats. A SQL, aquesta opció correspon a la clàusula GROUP BY. Si s’afig un criteri, aquesta entrada apareix a la subclàusula SQL HAVING. | 
També es poden introduir crides a funcions directament a la sentència SQL.
SELECT FUNCTION(columna) FROM taula.
Per exemple, la crida en SQL a la funció que calcula la suma és:
SELECT SUM("Preu") FROM "Article".
Excepte per la funció Group, les anteriors funcions s’anomenen funcions agregades. Són funcions que calculen les dades per crear resums a partir dels resultats. És possible que hi haja funcions addicionals que no apareixen al quadre de llista. Aquestes depenen del motor de base de dades específic que s’utilitze i, de la funcionalitat proporcionada pel controlador utilitzat per connectar-se a aquest motor.
Per a utilitzar aquestes funcions no enumerades, les heu d'introduir manualment a Camp.
També és possible assignar àlies a les crides de les funcions. Si no voleu que es mostre la cadena de la consulta a la capçalera de la columna, introduïu un nom substitut a Àlies.
La funció corresponent a la declaració SQL és:
SELECT FUNCTION() AS àlies FROM taula
Exemple:
SELECT COUNT(*) AS comptatge FROM "article"
Si executeu aquesta funció, a la consulta no podreu inserir cap columna addicional que no siga un argument de la funció «Agrupa».
Exemples
A l'exemple següent, s'executa una consulta a través de dues taules: una taula «Article» amb el camp «Num_article» i una taula «Proveïdors» amb el camp «Nom_proveïdor». A més, les dues taules tenen un camp comú, «Num_proveïdor».
Els passos següents són necessaris per a crear una consulta que continga tots els proveïdors que lliuren més de tres articles.
Inseriu les taules «Article» i «Proveïdors» al disseny de la consulta.
Enllaceu els camps «Num_proveïdor» de les dues taules si encara no hi ha cap relació d'aquest tipus.
Feu doble clic al camp «Num_article» de la taula «Article». Mostreu la fila Funció mitjançant el menú contextual i seleccioneu la funció Comptatge.
Introduïu >3 com a criteri i desactiveu el camp Visible.
Feu doble clic al camp «Nom_proveidor» a la taula «Proveïdors» i seleccioneu la funció Grup.
Executeu la consulta.
Si «preu» (preu individual d'un article) i «Num_proveïdor» (proveïdor de l'article) existeixen a la taula «Article», podreu obtindre el preu mitjà de l'article que proporciona un proveïdor amb la següent consulta:
Inseriu la taula «Article» al disseny de la consulta.
Feu doble clic als camps «Preu» i «Num_proveïdor».
Activeu la fila Funció i seleccioneu la funció Mitjana del camp «Preu».
També podeu introduir «Mitjana» a la línia en l'àlies del nom (sense cometes).
Seleccioneu Grup per al camp «Num_proveïdor».
Executeu la consulta.
Al menú contextual hi ha disponibles les següents ordres i símbols:
Mostra o amaga una fila segons la selecció de funcions.
Mostra o amaga la fila segons el nom de la taula.
Mostra o amaga la fila segons l'àlies del nom.
Recupera només els valors diferents de la consulta. S'aplica als múltiples registres que poden contindre diverses repeticions de les dades pels camps seleccionats. Si està activa l'ordre Valors diferents , només s'hauria de veure un registre a la consulta (DISTINCT). En cas contrari, veureu tots els registres corresponents als criteris de consulta (ALL).
Per exemple, si el nom "Joan" apareix diverses vegades a la base de dades d'adreces, podeu triar l'ordre Valors distints per especificar a la consulta que el nom "Joan" només aparisca una vegada.
Per a una consulta que impliqui diversos camps, la combinació de valors de tots els camps ha de ser única perquè el resultat es puga formar a partir d'un registre específic. Per exemple, teniu "Anna de Matadepera" una vegada a la llibreta d'adreces i "Anna d'Amposta" dues vegades. Amb l'ordre Valors distints , la consulta utilitzarà els dos camps "cognom" i "ciutat", i retornarà el resultat de la consulta "Anna de Matadepera" una vegada i "Anna d'Amposta" una vegada.
En SQL, aquesta ordre es correspon al predicat DISTINCT
Permet limitar el nombre màxim de registres retornats per una consulta.
Si s'afig la construcció Limit , obtindreu com a màxim tantes files com el número que especifiqueu. En cas contrari, veureu tots els registres corresponents als criteris de consulta.
En formular condicions de filtre, hi ha diversos operadors i ordres disponibles. A part dels operadors relacionals, hi ha ordres específiques d'SQL que consulten el contingut dels camps de la base de dades. Si utilitzeu aquestes ordres amb la sintaxi $ [officename], $ [officename] es converteix automàticament a la sintaxi SQL corresponent mitjançant un analitzador intern. També podeu introduir l'ordre SQL directament i passar per alt l'analitzador. Les taules següents ofereixen una visió general dels operadors i les ordres:
| Operador | Significat | La condició es compleix si... | 
|---|---|---|
| = | igual a | ... el contingut del camp és idèntic a l’expressió indicada. L'operador = no es mostrarà als camps de consulta. Si introduïu un valor sense cap operador, l'operador = s'assumeix automàticament. | 
| <> | no igual a | ... el contingut del camp no es correspon amb l'expressió especificada. | 
| > | major que | ... el contingut del camp és major que l'expressió especificada. | 
| < | menor que | ... el contingut del camp és menor que l'expressió especificada. | 
| >= | major que o igual a | ... el contingut del camp és major que o igual a l'expressió especificada. | 
| <= | menor que o igual a | ... el contingut del camp és menor que o igual a l'expressió especificada. | 
| ='Sra.' | retorna els noms dels camps amb el contingut del camp "Sra." | 
| <'2001-01-10' | retorna les dates que han ocorregut abans de gener del 2001 | 
| LIKE 'd?na' | retorna registres amb continguts del camp com ara «dona» i «duna». | 
| LIKE 'S*' | retorna registres amb continguts del camp com ara «Sol». | 
| BETWEEN 10 AND 20 | retorna registres amb contingut del camp amb valors entre 10 i 20. (Els camps poden ser tant text com nombre.) | 
| IN (1; 3; 5; 7) | retorna registres amb els valors 1, 3, 5, 7. Si el nom del camp conté un número, per exemple, podeu crear una consulta que retorne l'article que tinga el número especificat. | 
| NOT IN ('Jordi') | retorna registres que no continguen «Jordi». | 
Like Seqüència d'escapament: {escape 'escape-character'}
SELECT * FROM Item WHERE ItemName LIKE 'The *%' {escape '*'}
L'exemple vos mostrarà totes les entrades on el nom de l'element comença per "El *". Això vol dir que també podeu cercar caràcters que d'altra manera s'interpretarien com a marcadors de posició, com ara *,?, _,% o el punt.
Outer JoinSeqüència d'escapament: {oj outer-join}
SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}
Per consultar el contingut d'un camp de text, heu de posar l'expressió entre cometes simples. La distinció entre majúscules i minúscules depèn de la base de dades en ús. LIKE, per definició, distingeix entre majúscules i minúscules (tot i que algunes bases de dades no ho interpreten de forma estricta).
Els camps data es representen com a #Date# per identificar-los clarament com a dates. Les constants (literals) per data, hora i data/hora utilitzades a les condicions, poden ser del tipus Sintaxi d'escapament SQL o sintaxi SQL2 per defecte.
| Element de tipus data | 1a sintaxi d'escapament SQL (pot estar obsoleta) | 2a sintaxi d'escapament SQL | Sintaxi SQL2 | 
|---|---|---|---|
| Data | {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]' | 
| Datahora | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]' | 
SELECT {d '1999-12-31'} FROM world.years
SELECT * FROM mytable WHERE years='1999-12-31'
Totes les expressions data (tliterals data) s'han de tancar amb cometes simples. (Consulteu la referència de la base de dades i el connector que esteu utilitzant per a més detalls).
Per a efectuar consultes en camps sí/no, utilitzeu la sintaxi següent en taules dBASE:
| Estat | Criteri de consulta | Exemple | 
|---|---|---|
| Sí | per a taules dBASE: no és igual a cap valor donat | =1 retorna tots els registres on el camp Sí/No té l'estat "Sí" o "Activat" (seleccionat en negre) | 
| No | . | =0 retorna tots els registres per als quals el camp Sí/No té l'estat "No" o "Desactivat" (sense selecció). | 
| Null | IS NULL | IS NULL retorna tots els registres per als quals el camp Sí/No no té cap dels estats Sí o No (seleccionat en gris). | 
La sintaxi depèn del sistema de base de dades utilitzat. També heu de tindre en compte que els camps Sí/No es poden definir de manera diferent (només 2 estats en lloc de 3).
La consulta de paràmetres permet a l'usuari introduir valors en temps d'execució. Aquests valors s'utilitzen en els criteris per seleccionar els registres que es mostran. Cada valor té un nom de paràmetre associat, que s'utilitza per preguntar a l'usuari quan s'executa la consulta.
Els noms dels paràmetres estan precedits per dos punts en les vistes de disseny i SQL d'una consulta. Això es pot utilitzar on puga aparèixer un valor. Si el mateix valor apareix més d'una vegada a la consulta, s'utilitza el mateix nom de paràmetre.
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
Els noms dels paràmetres no poden contindre cap dels caràcters <space>`!"$%^*()+={}[]@'~#<>?/,. No poden ser els mateixos que els noms de camps o paraules reservades SQL. Poden ser els mateixos que els àlies.
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 || '%' ).
Les consultes de paràmetres es poden utilitzar com a font de dades per als subformularis per permetre a l'usuari restringir els registres mostrats.
El diàleg entrada del paràmetre demana a l'usuari que introduïsca els valors del paràmetre. Introduïu un valor per a cada paràmetre de consulta i confirmeu-los clicant OK o escrivint Entrar.
Els valors introduïts per l'usuari poden consistir en qualsevol caràcter permés a l'SQL per al criteri pertinent; això pot dependre del sistema de base de dades subjacent.
L'usuari pot utilitzar els caràcters de comodí SQL "%" (cadena arbitrària) o "_" (caràcter únic arbitrari) com a part del valor per recuperar registres amb criteris més complexos.
SQL significa "Llenguatge de consulta estructurat" i descriu instruccions per actualitzar i administrar bases de dades relacionals.
Al LibreOffice no necessitare cap coneixement d'SQL per a la majoria de consultes, ja que no heu d'introduir el codi SQL. Si creeu una consulta al dissenyador de consultes el LibreOffice converteix automàticament les vostres instruccions en la sintaxi SQL corresponent. Si, amb l'ajuda del botó Canvia la vista de disseny Actiu/Desactiu , canvieu a la vista SQL, podeu veure les ordres SQL per a la consulta ja creada.
Podeu formular la vostra consulta directament en codi SQL. Tingueu en compte, però, que la sintaxi especial depèn del sistema de base de dades que utilitzeu.
Si introduïu el codi SQL manualment, podeu crear consultes específiques SQL que no siguen compatibles amb la interfície gràfica al Dissenyador de consultes. Aquestes consultes s'han d'executar en mode SQL natiu.
En fer clic a la icona Executa l'ordre SQL directament a la vista SQL, podeu formular una consulta que no és processada pel LibreOffice i que s'envia directament al motor de base de dades.