Formulare le condizioni di filtro (dall'help di Libre Office Base 4.3.2) Per formulare le condizioni di filtro potete utilizzare vari comandi e operatori. Oltre agli operatori relazionali, esistono comandi specifici di SQL che ricercano nel contenuto dei campi del database. Utilizzando questi comandi nella sintassi di LibreOffice, quest'ultimo li converte automaticamente nella sintassi SQL corrispondente. Potete anche inserire direttamente il comando SQL. Le tabelle seguenti riassumono gli operatori e i comandi disponibili: Operatore Significato La condizione è soddisfatta se... ... il contenuto del campo è uguale all'espressione indicata. = è uguale L'operatore = non viene visualizzato nei campi di ricerca; se digitate un valore senza operatore, viene accettato l'operatore =. <> è diverso ... il contenuto del campo non corrisponde all'espressione indicata. > è maggiore ... il contenuto del campo è maggiore dell'espressione indicata. < è minore ... il contenuto del campo è minore dell'espressione indicata. è maggiore >= ... il contenuto del campo è maggiore o uguale all'espressione indicata. uguale è minore <= ... il contenuto del campo è minore o uguale all'espressione indicata. uguale Comando di LibreOffice Comando SQL Significato È VUOTO È ZERO è zero NON È VUOTO NON È ZERO non è vuoto COME (segnaposto * per qualsiasi numero di caratteri Segnaposto ? per un solo carattere) COME (segnaposto % per qualsiasi numero di è parte caratteri integrante di segnaposto _ per un solo esatto carattere) NON COME TRA x E y NON TRA x E y non è parte integrante di è compreso TRA x E y nell'intervallo [x,y] non è compreso NON TRA x E nell'intervallo y [x,y] NON COME IN (a; b; c...) Fate attenzione al punto e virgola come IN (a, b, c...) separatore in tutti gli elenchi valori. NOT IN (a, b, NON IN (a; b; c...) c...) La condizione è soddisfatta se... ... il campo di dati è vuoto. Nei campi Sì/No con tre stati questo comando esamina lo stato indefinito (né sì, né no). ...il campo di dati non è vuoto. ... il campo di dati contiene l'espressione indicata. I segnaposto (*) indicano qui se l'espressione x compare all'inizio (x*), alla fine (*x) o all'interno del contenuto del campo (*x*). Nelle ricerche SQL potete digitare come segnaposto il carattere SQL %, mentre nell'interfaccia di LibreOffice è necessario digitare i segnaposto tipici del file system (*). Il segnaposto * o % viene utilizzato a piacere per molti caratteri. Nell'interfaccia di LibreOffice il punto interrogativo (?) viene utilizzato come segnaposto per un solo carattere, mentre nelle ricerche SQL viene utilizzato il carattere (_). ... il campo di dati non contiene l'espressione indicata. ... il campo di dati contiene un valore, compreso tra i due valori x e y. ... il campo di dati contiene un valore che non è compreso tra i due valori x e y. ... il campo di dati contiene una delle espressioni indicate a, b, c,... . È possibile indicare a piacere più contiene a, b, espressioni, il risultato della ricerca viene comunicato c... con un collegamento O. Le espressioni a, b, c... possono essere sia numeri, sia caratteri. non contiene a, ... il campo di dati non contiene una delle espressioni b, c... indicate a, b, c,... = VERO = VERO = FALSO = FALSO Esempi ='Donna' <'2001-01-10' COME 'd?re' COME 'S*' ha il valore True ha il valore false ... il campo di dati ha il valore True. ... il campo di dati ha il valore False. restituisce campi di dati con il contenuto di campo "Donna". returns dates that occurred before January 10, 2001" restituisce i nomi dei campi il cui contenuto è "dire" o "dare". restituisce campi di dati con contenuti di campo come "Sun". restituisce campi di dati con i contenuti di campo tra i valori 10 e 20. (In questo caso può TRA 10 E 20 trattarsi sia di campi di testo, che di campi numerici). restituisce dati di campo con i valori 1, 3, 5, 7. Se ad esempio il campo di dati contiene un IN (1; 3; 5; 7) numero di articolo, potete creare una ricerca che restituisce l'articolo specifico per il numero 3; 5; 7) indicato. NON IN restituisce campi di dati che non contengono "Rossi". ('Rossi') Like Escape Sequence: {escape 'escape-character'} Esempio: select * from Articolo where NomeArticolo like 'The *%' {escape '*'} L'esempio restituisce tutte le voci nelle quali il nome dell'articolo inizia con 'The *'. In questo modo potete cercare anche caratteri che altrimenti vengono interpretati come segnaposto, quali *, ?, _, % o il punto. Outer Join Escape Sequence: {oj outer-join} Esempio: select Articolo.* from {oj Articolo LEFT OUTER JOIN ordini ON Nr. articolo=Ordini.ANR} Ricercare campi di testo Per esaminare il contenuto di un campo di testo, dovete impostare l'espressione all'interno delle virgolette semplici. Non viene fatta alcuna differenza tra le maiuscole e le minuscole. LIKE, per definizione, distingue tra maiuscole e minuscole (sebbene alcuni database non lo considerino in maniera così ristretta). Ricercare campi data I campi data sono rappresentati nella forma #Date# per essere chiaramente identificabili. La condizione della data verrà riprodotta nell'istruzione SQL risultante in conformità con il seguente formato ODBC: Date Type SQL Escape syntax #1 - may be SQL Escape syntax #2 SQL2 syntax Element obsolete Date {D'YYYY-MM-DD'} {d 'YYYY-MM-DD'} 'YYYY-MM-DD' Time {D'HH:MM:SS'} {t 'HH:MI:SS[.SS]'} 'HH:MI:SS[.SS]' {D'YYYY-MM-DD {ts 'YYYY-MM-DD 'YYYY-MM-DD DateTime HH:MM:SS'} HH:MI:SS[.SS]'} HH:MI:SS[.SS]' Esempio: select {d '1999-12-31'} from world.years Example: select * from mytable where years='1999-12-31' Anche per filtrare in base a una data dovete impostare l'espressione all'interno di virgolette semplici. Sono disponibili i seguenti formati: AAAA-MM-GG HH:MM:SS, AAAA/MM/GG HH:MM:SS e AAAA.MM.GG HH:MM:SS Ricercare campi Sì/No Per eseguire ricerche nei campi Sì/No nelle tabelle dBase, utilizzate la seguente sintassi: Stato Criterio di ricerca Esempio per le tabelle dBASE: non =1 restituisce tutti i record di dati nei quali il campo Sì/No ha la Sì uguale a qualsiasi valore dato condizione "Sì" o "on" (contrassegno nero). =0 restituisce tutti i campi di dati nei quali il campo Sì/No ha la No . condizione "No" o "off" (nessun contrassegno). È ZERO restituisce tutti i record di dati nei quali il campo Sì/No non ha Vuoto È ZERO nessuna delle due condizioni Sì o No (contrassegno grigio). La sintassi dipende dal sistema di database utilizzato. Osservate anche che i campi Sì/No possono essere definiti in modo differente (con solo 2 stati invece di 3). Ricerche di parametri Per creare una ricerca con parametri variabili, dovete collocare la variabile tra parentesi quadre (=[x]). Oppure, potete usare un segno di uguale seguito da due punti (=:x). Al momento dell'esecuzione della ricerca, il programma presenterà una finestra di dialogo per chiedere l'espressione a cui assegnare la variabile x. Se la ricerca deve essere eseguita su più parametri simultaneamente, la finestra di dialogo conterrà un elenco dei parametri in oggetto con una riga di digitazione accanto ad ognuno. Inserite i valori desiderati, preferibilmente dall'alto in basso, e premete Invio dopo ogni riga. Le ricerche sui parametri non accettano i segnaposto (*, _) o i caratteri speciali (ad esempio, ?). Se formulate una ricerca basata su parametri e la salvate con le variabili corrispondenti, potrete successivamente creare una nuova ricerca sostituendo solo le variabili con le espressioni desiderate. LibreOffice richiederà queste variabili con una finestra di dialogo al momento della sua esecuzione. Specifica parametro La finestra di dialogo Specifica parametro richiede di specificare le variabili definite nella ricerca. Digitate un valore per ogni variabile e confermate facendo clic su OK. Le ricerche basate su parametri vengono usate anche per i formulari secondari, i quali possono contenere solo ricerche in cui i valori da richiamare siano letti internamente da una variabile. In un'istruzione SQL una ricerca parametro si presenta nel modo seguente: select * from 'indirizzi' where 'nome' = :placeholder Modo SQL SQL è l'abbreviazione di "Structured Query Language" e descrive le istruzioni per cercare, aggiornare e gestire database relazionali. In LibreOffice, per la maggior parte delle ricerche non è necessario che conosciate il linguaggio SQL, poiché non dovete inserire il codice SQL. Se create una ricerca nella struttura, LibreOffice converte automaticamente le vostre istruzioni nella sintassi SQL corrispondente. Attivando la vista SQL con il pulsante Vista struttura sì/no, potete vedere i comandi SQL per le ricerche create in precedenza. Potete formulare la ricerca direttamente in codice SQL. In questo caso è opportuno ricordare che la sintassi speciale dipende dal sistema di database in uso. Se inserite manualmente il codice SQL, potete creare ricerche SQL specifiche che non devono essere supportate dall'interfaccia grafica della struttura di ricerca. Queste ricerche devono essere eseguite in modalità SQL nativa.