Mysql
 sql >> Database >  >> RDS >> Mysql

Differenza tra database, tabelle, regole di confronto delle colonne

I set di caratteri e le regole di confronto di MySQL possono essere interpretati come un elenco dall'alto verso il basso di elementi con priorità. L'ultimo ha la priorità minore e l'ultimo ha la priorità maggiore.

Ordine di precedenza con il primo posto come minimo:

  • Confronto server
  • Confronto specifico per connessione
  • Raccolta database
  • Composizione tabelle
  • Colonna di confronto
  • Query di confronto (usando CAST o CONVERT )

Le confronto server è impostato dal server, che è impostato all'interno di my.cnf o quando il server è stato creato dal codice sorgente. Per impostazione predefinita, di solito sarà latin1 o utf8 , a seconda della tua piattaforma.

Il confronto specifico della connessione viene impostato dal client utilizzando una query come SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'; . La maggior parte dei client non imposta regole di confronto specifiche per la connessione, quindi il server utilizzerà le proprie impostazioni predefinite come spiegato sopra.

Le collazioni di database viene impostato durante la creazione del database o manualmente aggiornandolo in un secondo momento. Se non ne specifichi una, utilizzerà le regole di confronto di livello superiore successive, che sarebbero quelle specifiche della connessione o quelle del server.

La confronto tabella è lo stesso delle regole di confronto del database, tranne se lasciato vuoto, utilizzerà il database come predefinito, quindi specifico per la connessione e infine le regole di confronto del server.

Le confronto di colonne utilizza le regole di confronto della tabella come impostazione predefinita e, se non sono state impostate regole di confronto, seguirà la catena per trovare una confronto da utilizzare, fermandosi al server se tutte le altre non sono state impostate.

Le confronto di query è specificato nella query utilizzando CAST o CONVERT , ma in caso contrario utilizzerà le successive regole di confronto disponibili nella catena. Non c'è modo di impostarlo a meno che non utilizzi una funzione.

Fare riferimento anche alla pagina di manuale Supporto per set di caratteri .