13.1.12 Dichiarazione CREATE DATABASE
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}
CREATE DATABASE
crea un database con il nome dato. Per usare questa istruzione, avete bisogno del privilegio CREATE
per il database. CREATE SCHEMA
è un sinonimo di CREATE DATABASE
.
Si verifica un errore se il database esiste e non avete specificato IF NOT EXISTS
.
CREATE DATABASE
non è permesso all’interno di una sessione che ha una dichiarazione LOCK TABLES
attiva.
Ogni create_option
specifica una caratteristica del database. Le caratteristiche del database sono memorizzate nel dizionario dei dati.
-
L’opzione
CHARACTER SET
specifica il set di caratteri predefinito del database. L’opzioneCOLLATE
specifica l’ordinamento predefinito del database. Per informazioni sui nomi dei set di caratteri e di ordinamento, vedi Capitolo 10, Set di caratteri, ordinamenti, Unicode.Per vedere gli insiemi di caratteri e ordinamenti disponibili, usate le dichiarazioni
SHOW CHARACTER SET
eSHOW COLLATION
, rispettivamente. Vedi Sezione 13.7.7.3, “Dichiarazione SHOW CHARACTER SET”, e Sezione 13.7.7.4, “Dichiarazione SHOW COLLATION”. -
L’opzione
ENCRYPTION
, introdotta in MySQL 8.0.16, definisce la codifica di default del database, che viene ereditata dalle tabelle create nel database. I valori consentiti sono'Y'
(crittografia abilitata) e'N'
(crittografia disabilitata). Se l’opzioneENCRYPTION
non è specificata, il valore della variabile di sistemadefault_table_encryption
definisce la crittografia di default del database. Se la variabile di sistematable_encryption_privilege_check
è abilitata, il privilegioTABLE_ENCRYPTION_ADMIN
è richiesto per specificare un’impostazione di crittografia predefinita che differisce dall’impostazionedefault_table_encryption
. Per maggiori informazioni, vedi Definire una crittografia di default per schemi e spazi di tabelle generali.
Un database in MySQL è implementato come una directory contenente i file che corrispondono alle tabelle del database. Poiché non ci sono tabelle in un database quando viene creato inizialmente, l’istruzione CREATE DATABASE
crea solo una directory sotto la directory dei dati MySQL. Le regole per i nomi di database ammissibili sono date nella Sezione 9.2, “Nomi degli oggetti dello schema”. Se il nome di un database contiene caratteri speciali, il nome della directory del database contiene versioni codificate di quei caratteri come descritto nella Sezione 9.2.4, “Mappatura degli identificatori ai nomi dei file”.
Creare una directory di database creando manualmente una directory sotto la directory dei dati (per esempio, con mkdir) non è supportato in MySQL 8.0.
Quando crei un database, lascia che sia il server a gestire la directory e i file al suo interno. Manipolare direttamente le directory e i file del database può causare incoerenze e risultati inaspettati.
MySQL non ha limiti sul numero di database. Il file system sottostante può avere un limite sul numero di directory.
Puoi anche usare il programma mysqladmin per creare database. Vedere la Sezione 4.5.2, “mysqladmin – Un programma di amministrazione del server MySQL”.
Si può anche usare il programma mysqladmin per creare database.