Ricerche FULLTEXT IN NATURAL LANGUAGE MODE

Gli argomenti di questa pagina

  • MATCH() - AGAINST() - IN NATURAL LANGUAGE MODE
  • Sintassi per ricerche FULLTEXT
  • Esempi di ricerca FULLTEXT usando IN NATURAL LANGUAGE MODE

MATCH() - AGAINST() - IN NATURAL LANGUAGE MODE

La ricerca in linguaggio naturale è la prima e più semplice dei tipi di ricerca FULLTEXT che possiamo usare.
Viene eseguita se nella funzione AGAINST() è specificato il modificatore IN NATURAL LANGUAGE MODE. Se questo modificatore viene omesso viene eseguito questo tipo di ricerca per default.
In pratica, scrivere AGAINST ('parole da cercare') oppure AGAINST ('parole da cercare' IN NATURAL LANGUAGE MODE) produce il medesimo effetto.
La funzione MATCH() accetta come argomenti la lista dei nomi delle colonne su cui si effettua la ricerca, separati da virgole.
La funzione AGAINST() accetta una stringa da cercare, senza operatori speciali, scritta in maniera più o meno libera, e, opzionalmente, un modificatore che indica il tipo di ricerca desiderata. La stringa di ricerca deve essere una stringa letterale.
La funzione MATCH() cerca una stringa in un insieme di una o più colonne incluse in un indice FULLTEXT di una tabella.
Per ogni riga della tabella, MATCH() restituisce un valore di rilevanza, cioè, una misura di similarità tra la stringa di ricerca e il testo trovato in quella riga nelle colonne date come argomenti alla funzione MATCH ().

Per default la ricerca viene eseguita in modo case-insensitive.
Quando MATCH() viene utilizzato in una clausola WHERE le righe vengono restituite prima automaticamente con altissima rilevanza. I valori di rilevanza sono numeri in virgola mobile non negativi. Zero rilevanza significa nessuna corrispondenza.
La rilevanza è calcolata in base al numero di parole nella riga, il numero di parole uniche in quella riga, il numero totale di parole nella raccolta, e il numero di documenti (righe) che contengono una particolare parola.
Per le ricerche full-text in natural-language, le colonne indicate nella funzione MATCH() devono essere tutte le colonne incluse negli indici FULLTEXT nella tabella.
Per cercare in uno a altro campo, si potrebbe creare indici FULLTEXT separati per ogni colonna.

Sintassi per ricerche FULLTEXT

Come si noterà nel proseguo di questo approfondimento, le query utilizzate per le ricerche FULLTEXT sono differenti rispetto a quelle utilizzate abitualmente, ma la struttura rimane quasi la stessa. Normalmente, dopo aver scelto i campi da visualizzare e la tabella da utilizzare, è nella WHERE che notiamo delle differenze:

MATCH(col1,col2,...) AGAINST(stringa di ricerca [search_modifier])
MATCH() accetta un elenco dei nomi delle colonne dove eseguire la ricerca separato da virgole.
AGAINST() prende una stringa da cercare. La stringa può essere rappresentata da una o più parole.
search_modifier è opzionale e, se omesso, si intende utilizzare il modificatore IN NATURAL LANGUAGE MODE

Il modificatore di ricerca di default è IN NATURAL LANGUAGE MODE (generalmente omesso per semplificare la scrittura della Query o perchè non accettato in versioni più obsolete del MYSQL).

E' da notate che i modifiers IN NATURAL LANGUAGE MODE e IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION sono stati aggiunti nella versione MySQL 5.1.7 e, se usate in versioni antecedenti causerebbero un errore con relativo blocco dell'esecuzione della Query
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NATURAL LANGUAGE MODE )
LIMIT 0, 30' at line 1

Questo modificatore effettua una ricerca considerando che il pattern proposto viene scritto in linguaggio naturale, letterale.
Questa modalità di ricerca effettuerà il procedimento due volte:

  • prima cerca il pattern così come fornito
  • poi associa al pattern i contenuti più rilevanti individuati nella prima ricerca.

Questa ricerca produrrà un maggior numero di record rilevanti riscontrati.

Esempi di ricerca FULLTEXT usando IN NATURAL LANGUAGE MODE

E' stato detto che per fare una ricerca FULLTEXT il modificatore IN NATURAL LANGUAGE MODE può essere omesso in quanto, se non diversamente indicato con altri modificatori, per default viene eseguita in linguaggio naturale. Una ricerca in linguaggio naturale interpreta la stringa di ricerca come una frase in una lingua umana.
Perciò la ricerca FULLTEXT è considerata in linguaggio naturale se viene specificato IN NATURAL LANGUAGE MODE, oppure se non viene specificato alcun modificatore.
Non vengono usati operatori speciali.
Altra notizia importante è che i termini che sono presenti in più del 50% delle righe sono considerate comuni e vengono ignorate.

Seguono alcuni esempi esplicativi. Per ciastun esempio viene data una spiegazione sommaria.
Alla fine di tutti gli esempi viene fornita la tabella completa su cui ho eseguito questi test.

Esempio 1
find: 'data time'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('data time')
In questo esempio vengono cercati e trovati i record che contengono le parole data, time
Non vengono catturati i record che contengono la parola 'database' dei record con ID 7 - 9 - 21 - 23 (vedi tabella integrale a fondo pagina)
2 record letti
id title body
4 La funzione PHP time La funzione time() restituisce l'attuale UNIX timestamp cioè l'ora corrente misurato in numero di secondi dalla Unix Epoch.
5 La funzione mktime La funzione PHP mktime() restituisce il timestamp UNIX di una certa data, ovvero il numero di secondi trascorsi dal 1 gennaio 1970 alla data in esame.
Esempio 2
find: 'restituisce un timestamp'
1
2
3
4
5

SELECT *FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('restituisce un timestamp')
In questo esempio vengono cercati e trovati i record che contengono le parole restituisce, un, timestamp
E' solo un caso se la parola un compare nei record restituiti.
Il fatto è che la parola viene catturata solo perchè è contenuta nei record che contengono le altre parole.
Il problema si risolverà parzialmente solo con:
SELECT * FROM sql_articoli WHERE MATCH ( title, body ) AGAINST ('restituisce un* timestamp' IN BOOLEAN MODE)
che vedremo più avanti in altro capitolo.
9 record letti
id title body
4 La funzione PHP time La funzione time() restituisce l'attuale unIX timestamp cioè l'ora corrente misurato in numero di secondi dalla unix Epoch.
5 La funzione mktime La funzione PHP mktime() restituisce il timestamp unIX di una certa data, ovvero il numero di secondi trascorsi dal 1 gennaio 1970 alla data in esame.
13 La funzione count_chars() La funzione count_chars(), da non confondere con la funzione strlen(), restituisce informazioni sui caratteri utilizzati in una stringa (ad esempio, quante volte un carattere ASCII compare in una stringa). restituisce i risultati in vari modi, a seconda del secondo argomento facoltativo.
11 Name, Path, FullName Per acquisire queste informazioni VBA ci mette a disposizione tre proprietà dell'oggetto Workbook:.
Name: che restituisce il nome della cartella
Path: che restituisce il percorso, sul disco, dove è memorizzata la nostra cartella
FullName: che riunisce le due precedenti proprietà.
Queste tre proprietà dell'oggetto Workbook ci possono tornare utili in più di una circostanza tra cui la possibilità di salvare la cartella o uno dei fogli di questa.
3 La funzione PHP substr Questa funzione restituisce parte di una stringa che viene individuata dai parametri start e length.
1 La funzione PHP strpos La funzione strpos() trova e restituisce la posizione della prima occorrenza di una stringa in un'altra stringa.
16 funzione LOCATE() La funzione LOCATE() restituisce la posizione della prima occorrenza di una sottostringa in una stringa. Se come terzo argomento viene passato anche un numero la ricerca inizia dalla posizione indicata da tale numero.
12 La funzione strlen() La funzione strlen() restituisce la lunghezza di una stringa.
Conoscere la lunghezza di una stringa può determinare a volte l'esecuzione o meno di un blocco di codice
14 funzione SUBSTRING_INDEX() La funzione SUBSTRING_INDEX() restituisce la sottostringa dalla stringa dando un determinato numero di occorrenze di un delimitatore.
La stringa restituita dalla sinistra del delimitatore finale quando il numero specificato è un numero positivo e da destra del delimitatore finale quando il numero specificato è un numero negativo.
Se il numero specificato è maggiore del numero di occorrenza di delimitatore, la stringa restituita sarà la stringa totale.
Esempio 3
find: 'Query DB'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('Query DB')
In questo esempio si cercano le parole Query - DB.
Anche in questo caso è da notare che nel resultset restituito non vengono visualizzati i record che contengono la sola parola DB.
E' solo un caso se la parola DB compare nei record restituiti.
Il problema si risolverà parzialmente solo con:
SELECT * FROM sql_articoli WHERE MATCH ( title, body ) AGAINST ('Query DB*' IN BOOLEAN MODE)
che vedremo più avanti in altro capitolo.
3 record letti
id title body
7 Query La Query SELECT è la base di ogni domanda che si intende rivolgere ad un database. Queste domande sono tecnicamente chiamate Query.
8 La clausola ORDER BY In una Query SELECT la clausola ORDER BY ha un parametro che indica il tipo di ordinamento da imporre al resultset: ascendente o discendente.
21 Gestione DB Il database o banca dati o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni sono distribuite e a volte collegate tra loro mediante una serie di tabelle in modo da consentire in modo più o meno efficiente la gestione dei dati mediante Query (richieste o interrogazioni). Quindi iniziamo a crearci una immagine fisica su cosa è e su cosa rappresenta un DB.
Esempio 4
find: 'Query database'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('Query database')
In questo esempio vengono cercati e trovati tutti i record che includono le parole Query - database
3 record letti
id title body
7 Query La Query SELECT è la base di ogni domanda che si intende rivolgere ad un database. Queste domande sono tecnicamente chiamate Query.
21 Gestione DB Il database o banca dati o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni sono distribuite e a volte collegate tra loro mediante una serie di tabelle in modo da consentire in modo più o meno efficiente la gestione dei dati mediante Query (richieste o interrogazioni). Quindi iniziamo a crearci una immagine fisica su cosa è e su cosa rappresenta un DB.
8 La clausola ORDER BY In una Query SELECT la clausola ORDER BY ha un parametro che indica il tipo di ordinamento da imporre al resultset: ascendente o discendente.
Esempio 5
find: 'funzione SE SOMMA CERCA.VERTICALE CONCATENA'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('funzione SE SOMMA CERCA.VERTICALE CONCATENA')
In questo esempio vengono cercati e trovati tutti i record che includono le parole funzione - SE - SOMMA - CERCA - VERTICALE - CONCATENA.
Tuttavia non vengono individuati i record con la sola parola SE. Si potrebbe risolvere con
SELECT * FROM sql_articoli WHERE MATCH ( title, body ) AGAINST ('funzione SE* SOMMA CERCA VERTICALE CONCATENA' IN BOOLEAN MODE)
3 record letti
id title body
27 Le funzioni SOMMA SE e CONCATENA() Combinazione delle funzioni SOMMA(), SE() e CONCATENA().
Il confronto si eSEgue tra due coppie di valori per rispondere al quesito:
eSEgui la SOMMA dei valori che si trovano nella colonna F SE l'articolo che sta nella colonna C e SE il suo colore che è indicato nella colonna D sono uguali all'articolo indicato nella cella C16 e al colore che ho indicato nella cella C17.
28 Le funzioni VAL.ERR e SE In queste formule usiamo ben tre funzioni del foglio di Excel:
la funzione SE
la funzione VAL.ERRORE
la funzione CERCA.VERTICALE
29 Il pulsante CERCA Successivo Il numero del campo in cui CERCARE i dati ci viene fornito dalla proprietà ListIndex della ComboBox aumentata di una unità.
Occorre effettuare questo calcolo perchè la ListIndex è a baSE 0 (zero), mentre la matrice dei campi è stata creata a baSE 1
Trovato il campo da cui prelevare i dati da inSErire nella ComboBox2, scorriamo la matrice Matrice leggendono solo i valori relativi a quel campo.
Esempio 6
find: 'funzione CERCA.VERTICALE CONCATENA'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('funzione CERCA.VERTICALE CONCATENA')
In questo esempio vengono cercati e trovati tutti i record che includono le parole funzione - CERCA - VERTICALE - CONCATENA.
Altro limite di questo tipo di ricerca è la perdita di record se le parole cercate compaiono in più del 50% delle righe della tabella: la parola 'funzione' è presente in moltissimi record. Su 29 record è presente in ben 16 record. (Vedi tabella integrale a fondo pagina.).
Utilizzando IN BOOLEAN MODE per superare il limite del 50%. La Query di esempio
SELECT * FROM sql_articoli WHERE MATCH (title, body) AGAINST ('funzione CERCA VERTICALE CONCATENA' IN BOOLEAN MODE)
3 record letti
id title body
28 Le funzioni VAL.ERR e SE In queste formule usiamo ben tre funzioni del foglio di Excel:
la funzione SE
la funzione VAL.ERRORE
la funzione CERCA.VERTICALE
27 Le funzioni Somma Se e CONCATENA() Combinazione delle funzioni SOMMA(), SE() e CONCATENA().
Il confronto si esegue tra due coppie di valori per rispondere al quesito:
esegui la somma dei valori che si trovano nella colonna F se l'articolo che sta nella colonna C e se il suo colore che è indicato nella colonna D sono uguali all'articolo indicato nella cella C16 e al colore che ho indicato nella cella C17.
29 Il pulsante CERCA Successivo Il numero del campo in cui CERCARE i dati ci viene fornito dalla proprietà ListIndex della ComboBox aumentata di una unità.
Occorre effettuare questo calcolo perchè la ListIndex è a base 0 (zero), mentre la matrice dei campi è stata creata a base 1
Trovato il campo da cui prelevare i dati da inserire nella ComboBox2, scorriamo la matrice Matrice leggendono solo i valori relativi a quel campo.
Lo schema di presentazione della tabella viene modificato per avere la possibilità di visualizzare anche la colonna della rilevanza.
Esempio Query con Rilevance
find: 'funzione CERCA.VERTICALE CONCATENA'
1
2
3
4
5
6

SELECT *, MATCH(title, body) AGAINST('funzione CERCA.VERTICALE CONCATENA') AS relevance
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('funzione CERCA.VERTICALE CONCATENA')
Per studiare questo tipo di ricerca è anche possibile replicare il MATCH e l'AGAINST nell'elenco dei campi della SELECT. In questa colonna vengono mostrati dei valori che indicano il grado di pertinenza tra i valori cercati ed i contenuti memorizzati.
I valori di rilevanza sono numeri in virgola mobile non negativi. Rilevanza Zero significa nessuna somiglianza. Rilevanza è calcolata in base al numero di parole nella riga, il numero di parole uniche in quella riga, il numero totale di parole nella raccolta, e il numero di righe che contengono una particolare parola.
In questo esempio viene mostrato in modo esplicito il grado di rilevanza che viene assegnato ad ogni record restituito, cioè, una misura di similarità tra la stringa di ricerca e il testo in quella riga nelle colonne indicate nell'elenco MATCH().
3 record letti
id title body relevance
28 Le funzioni VAL.ERR e SE In queste formule usiamo ben tre funzioni del foglio di Excel:
la funzione SE
la funzione VAL.ERRORE
la funzione CERCA.VERTICALE
4.568329334259033
27 Le funzioni Somma Se e CONCATENA() Combinazione delle funzioni SOMMA(), SE() e CONCATENA().
Il confronto si esegue tra due coppie di valori per rispondere al quesito:
esegui la somma dei valori che si trovano nella colonna F se l'articolo che sta nella colonna C e se il suo colore che è indicato nella colonna D sono uguali all'articolo indicato nella cella C16 e al colore che ho indicato nella cella C17.
3.207742691040039
29 Il pulsante CERCA Successivo Il numero del campo in cui CERCARE i dati ci viene fornito dalla proprietà ListIndex della ComboBox aumentata di una unità.
Occorre effettuare questo calcolo perchè la ListIndex è a base 0 (zero), mentre la matrice dei campi è stata creata a base 1
Trovato il campo da cui prelevare i dati da inserire nella ComboBox2, scorriamo la matrice Matrice leggendono solo i valori relativi a quel campo.
1.6507257223129272
Esempio Query con modificatore
find: 'funzione CERCA.VERTICALE CONCATENA'
1
2
3
4
5
SELECT *
FROM sql_articoli
WHERE MATCH (title, body)
AGAINST ('funzione CERCA.VERTICALE CONCATENA' IN NATURAL LANGUAGE MODE)
Usando esplicitamente il modificatore IN NATURAL LANGUAGE MODE questa Query potrebbe non funzionare in versioni MySQL antecedenti la versione 5.1.7.
Se la versione MYSQL accetta questa Query i risultati sarebbero uguali ai risultati dell'esempio precedente.
Se non funziona, non è un problema di errore nella sintassi, ma semplicemente perchè la versione MYQL in uso non è sufficiente per accettare questo tipo di modificatore.
L'errore che si verificherà mostrerà questo messaggio:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NATURAL LANGUAGE MODE)' at line 4
3 record letti
id title body
28 Le funzioni VAL.ERR e SE In queste formule usiamo ben tre funzioni del foglio di Excel:
la funzione SE
la funzione VAL.ERRORE
la funzione CERCA.VERTICALE
27 Le funzioni Somma Se e CONCATENA() Combinazione delle funzioni SOMMA(), SE() e CONCATENA().
Il confronto si esegue tra due coppie di valori per rispondere al quesito:
esegui la somma dei valori che si trovano nella colonna F se l'articolo che sta nella colonna C e se il suo colore che è indicato nella colonna D sono uguali all'articolo indicato nella cella C16 e al colore che ho indicato nella cella C17.
29 Il pulsante CERCA Successivo Il numero del campo in cui CERCARE i dati ci viene fornito dalla proprietà ListIndex della ComboBox aumentata di una unità.
Occorre effettuare questo calcolo perchè la ListIndex è a base 0 (zero), mentre la matrice dei campi è stata creata a base 1
Trovato il campo da cui prelevare i dati da inserire nella ComboBox2, scorriamo la matrice Matrice leggendono solo i valori relativi a quel campo.
La tabella completa
find:
1
2
3
4

SELECT *
FROM sql_articoli
Viene qui riportata la tabella integrale per poter avere la possibilità di confrontare i risultati dei test eseguiti coi record di questa tabella.
30 record letti
id title body
1 La funzione PHP strpos La funzione strpos() trova e restituisce la posizione della prima occorrenza di una stringa in un'altra stringa.
2 La funzione PHP substr_count La funzione substr_count() Conta il numero di occorrenze di una sottostringa.
3 La funzione PHP substr Questa funzione restituisce parte di una stringa che viene individuata dai parametri start e length.
4 La funzione PHP time La funzione time() restituisce l'attuale UNIX timestamp cioè l'ora corrente misurato in numero di secondi dalla Unix Epoch.
5 La funzione mktime La funzione PHP mktime() restituisce il timestamp UNIX di una certa data, ovvero il numero di secondi trascorsi dal 1 gennaio 1970 alla data in esame.
6 Piccolo tutorial per opendir La funzione opendir() apre l'handle della directory, ossia un canale che permette la comunicazione con la directory da usare nelle chiamate alla funzione readdir() e alla funzione closedir().
7 Query La Query SELECT è la base di ogni domanda che si intende rivolgere ad un database. Queste domande sono tecnicamente chiamate Query.
8 La clausola ORDER BY In una Query SELECT la clausola ORDER BY ha un parametro che indica il tipo di ordinamento da imporre al resultset: ascendente o discendente.
9 Operatore OR Viene usato l'operatore OR quando occorre effettuare un confronto ed almeno uno deve essere vero.
10 La clausola WHERE Per limitare il numero di record restituiti da una istruzione SELECT è possibile usare la clausola WHERE.
11 Name, Path, FullName Per acquisire queste informazioni VBA ci mette a disposizione tre proprietà dell'oggetto Workbook:. Name: che restituisce il nome della cartella Path: che restituisce il percorso, sul disco, dove è memorizzata la nostra cartella FullName: che riunisce le due precedenti proprietà. Queste tre proprietà dell'oggetto Workbook ci possono tornare utili in più di una circostanza tra cui la possibilità di salvare la cartella o uno dei fogli di questa.
12 La funzione strlen() La funzione strlen() restituisce la lunghezza di una stringa. Conoscere la lunghezza di una stringa può determinare a volte l'esecuzione o meno di un blocco di codice
13 La funzione count_chars() La funzione count_chars(), da non confondere con la funzione strlen(), restituisce informazioni sui caratteri utilizzati in una stringa (ad esempio, quante volte un carattere ASCII compare in una stringa). Restituisce i risultati in vari modi, a seconda del secondo argomento facoltativo.
14 funzione SUBSTRING_INDEX() La funzione SUBSTRING_INDEX() restituisce la sottostringa dalla stringa dando un determinato numero di occorrenze di un delimitatore. La stringa restituita dalla sinistra del delimitatore finale quando il numero specificato è un numero positivo e da destra del delimitatore finale quando il numero specificato è un numero negativo. Se il numero specificato è maggiore del numero di occorrenza di delimitatore, la stringa restituita sarà la stringa totale.
15 Nidificazione della funzione SUBSTRING_INDEX() Se si vuole estrarre una delle parti mediane di una stringa è necessario nidificare la funzione SUBSTRING_INDEX(). Come esempi propongo: l'estrazione della parte letterale di un codice del tipo '000_xxxxx_000' l'estrazione delle singole parti di un indirizzo IP
16 funzione LOCATE() La funzione LOCATE() restituisce la posizione della prima occorrenza di una sottostringa in una stringa. Se come terzo argomento viene passato anche un numero la ricerca inizia dalla posizione indicata da tale numero.
17 Un esempio pratico su una vera tabella MYSQL ora vediamo di usare la funzione LOCATE() nella tabella sql_rubrica per cercare la posizione che occupano il carattere separatore '_' nel campo 'codice'. Sapendo che nel campo troveremo due di questi caratteri separatori usiamo una sola nidificazione della funzione come mostrato qui di seguito.
18 funzioni UPPER() e LOWER() Le due funzioni sono sinonimi delle funzioni MYSQL UCASE() e LCASE(), quindi si comportano allo stesso modo. La funzione UPPER() ritorna una stringa di lettere maiuscole, e la funzione LOWER() la rende minuscola.
19 funzione REPLACE() La funzione REPLACE() può essere utilizzata per cambiare il contenuto di un record estratto da un DB. E' possibile sostituire un dato valore all'interno di uno specifico campo in maniera semplice e può essere messa in opera con una semplice istruzione SQL utilizzando la funzione REPLACE() messa a disposizione nativamente dal DBMS MySQL.
20 Ricerca per numero telefonico Togliendo gli spazi ed altri eventuali caratteri separatori è possibile eseguire il controllo solo sulle vere cifre che compongono il numero. Questa operazione di pulizia viene effettuata usando la funzione REPLACE(). Se necessario è possibile usare anche più funzioni REPLACE() nidificate.
21 Gestione DB Il database o banca dati o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni sono distribuite e a volte collegate tra loro mediante una serie di tabelle in modo da consentire in modo più o meno efficiente la gestione dei dati mediante Query (richieste o interrogazioni). Quindi iniziamo a crearci una immagine fisica su cosa è e su cosa rappresenta un DB.
22 istruzione SELECT L'istruzione SELECT, più di tutte le altre istruzioni, è senz'altro l'istruzione più usata in MYSQL. E' la più potente e complessa e per mezzo di essa è possibile richiamare e mostrare i dati dalle tabelle esistenti nel DB mostrandoli nei modi più vari. Ad essa vengono associate, opzionalmente, quasi tutte le altre istruzioni e clausole di cui dispone il dialetto MYSQL. E' capace di richiamare e mostrare informazioni usando una infinità di modi.
23 Filtrare con clausola WHERE Per filtrare i dati abbiamo IS NULL e IS NOT NULL per verificare se un valore è (o non è) NULL; BETWEEN per test su valori compresi fra due estremi (inclusi); IN per verificare l’appartenenza di un valore ad una lista di valori dati.
24 Le tabelle In ambito MYSQL le tabelle sono le strutture principali di un DB. Una tabella è organizzata da un insieme di record (di righe) che hanno lo stesso numero e tipo di campi. La tabella organizza quindi i record essendo questa, strutturata in righe (record)e colonne (campi). Ogni tabella contiene almeno un record ed almeno un campo.
25 Introduzione al DB Con MYSQL le pagine diventano ancora più interessanti e dinamiche in quanto ogni pagina può mostrare innumerevoli viste dipendenti dalle richieste in lettura e/o scrittura fatte al DB.
26 Struttura e dati in DB La gestione del DB può essere così suddivisa: Gestione e definizione della struttura Gestione e definizione dei dati Le azioni che si compiono in un DB possono esere in lettura ed in scrittura, creative e distruttive. Se per le azioni di lettura o consultive è possibile agire abbastanza tranquillamente, per le azioni che tendono a modificare il contenuto del DB occorre porre particolare attenzione.
27 Le funzioni Somma Se e CONCATENA() Combinazione delle funzioni SOMMA(), SE() e CONCATENA(). Il confronto si esegue tra due coppie di valori per rispondere al quesito: esegui la somma dei valori che si trovano nella colonna F se l'articolo che sta nella colonna C e se il suo colore che è indicato nella colonna D sono uguali all'articolo indicato nella cella C16 e al colore che ho indicato nella cella C17.
28 Le funzioni VAL.ERR e SE In queste formule usiamo ben tre funzioni del foglio di Excel: la funzione SE la funzione VAL.ERRORE la funzione CERCA.VERTICALE
29 Il pulsante CERCA Successivo Il numero del campo in cui CERCARE i dati ci viene fornito dalla proprietà ListIndex della ComboBox aumentata di una unità. Occorre effettuare questo calcolo perchè la ListIndex è a base 0 (zero), mentre la matrice dei campi è stata creata a base 1 Trovato il campo da cui prelevare i dati da inserire nella ComboBox2, scorriamo la matrice Matrice leggendono solo i valori relativi a quel campo.
30 Verificare appartenenza Per verificare l'appartenenza con IN consente di stabilire se un valore corrisponde ad almeno uno dei valori elencati in una lista.

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum