Merge (database): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m cambio catg
m fix categorie
Etichette: Modifica da mobile Modifica da applicazione mobile Modifica da applicazione Android
 
(21 versioni intermedie di 12 utenti non mostrate)
Riga 1:
'''Merge''', èo un'''MRG_MyISAM''', tipoè diuno tabella[[storage engine]] di [[MySQL]] e dei suoi [[fork (sviluppo software)|fork]]. Una tabella di tipo Merge è una collezione di tabelle [[MyISAM]] aventi le stesse colonne e gli stessi indici. Le colonne e gli indici devono avere gli stessi nomi, lo stesso ordine e le stesse caratteristiche in tutte le tabelle MyISAM che fanno parte della stessa Merge. Esse però non devono necessariamente trovarsi nello stesso database e possono avere formati e opzioni (PACK_KEYS, MAX_ROWS...) differenti.
 
Questo tipo di tabella è stato creato nelle più vecchie versioni di MySQL principalmente per supplire ilal mancato supporto alle [[Vista_Vista (databasebasi di dati)|viste]] e al partizionamento, ma ancora oggi può risultare utile.
 
La licenza è la [[GNU General Public License|GNU GPL]] versione 2.
 
==Struttura dei file==
Line 13 ⟶ 15:
Il legame fra lo stesso campo di due o più tabelle può essere in generale di quattro tipi:
 
*1) inner join: selezione degli elementi comuni ai due campi. Equivale all'intersezione fra insiemi. Contestualmente il ''software'' può consentire l'operazione di [[complemento a uno]] fra un [[insieme]] e l'intersezione, che equivale a trovare gli elementi comuni e non comuni di due elenchi. Può essere fatto con un [[foglio di calcolo]], senza ricorrere a codice SQL.
 
*2) outer join, di tre tipi:
**2a) right outer join: selezione di tutti gli elementi della tabella più a destra e solo degli elementi indeticiidentici a questi nelle altre tabelle;
**2b) left outer join: selezione di tutti gli elementi della tabella più a sinistra e solo degli elementi indeticiidentici a questi nelle altre tabelle;;
**2c) full outer join: selezione di tutti gli elementi di tutte le tabelle, che siano comuni o meno. Questa operazione equivale all'[[Unione (insiemistica)|unione]] di più insiemi, di più tabelle in una unica, senza perdita di informazione.
 
Il merge di dati può essere effettuato unendo le tabelle di origine in un'unica tabella, che avrà le colonne comuni con lo stesso formato, e delle celle nei campi che ciascuna tabella di orgineorigine non ha in comune con l'altra. Una [[tabella pivot]] permette poi di contare le occorrenze di ciascuaciascuna colonna comune, e filtrare quelli superiori a uno, che sono i valori ripetuti.
 
==Come creare una tabella di tipo Merge==
La sintassi per creare una tabella MergeèMerge è la seguente:
 
CREATE TABLE t1 (
Line 39 ⟶ 40:
 
Come si può notare, la tabella totale ha la stessa struttura delle due tabelle sottostanti. Il campo a non è dichiarato come chiave primaria perché il motore Merge non può garantire l'unicità dei dati.
 
Le due opzioni seguenti sono molto importanti:
* UNION elenca le tabelle che fanno parte della MERGE.
* INSERT_METHOD specifica se la MERGE può accettare l'inserimento di dati, e in quale tabella. I valori possibili sono:
** FIRST - i nuovi dati vengono inseriti nella prima MyISAM elencata in UNION
** LAST - i nuovi dati vengono inseriti nell'ultima MyISAM elencata in UNION
** NO - nessun nuovo record può essere inserito, la tabella MERGE è di sola lettura (sarà però possibile inserire dati direttamente nelle MyISAM sottostanti)
 
Per modificare la lista delle tabelle sottostanti:
Line 44 ⟶ 52:
 
==Voci correlate==
*[[MySQL]]
*[[MyISAM]]
*[[MySQL]]
* [[MariaDB]]
 
==Collegamenti esterni==
*[http {{cita web|https://www.mysql.com /|MySQL]}}
* {{cita web|https://mariadb.org/|MariaDB}}
*[http://winmerge.sourceforge.net/ Plug-in gratuito e ''open-source'' per il merge di file Office, testo, Lotus Notes, Project]
* {{cita web|http://www.percona.com/software/percona-server|Percona Server}}
*[ {{cita web|http://winmerge.sourceforge.net/ |Plug-in gratuito e ''open-source'' per il merge di file Office, testo, Lotus Notes, Project]}}
 
{{Portale|Software libero}}
 
[[Categoria:Teorie su base datiMySQL]]
[[Categoria:Librerie C++]]