13.1.12 CREATE DATABASE Statement
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}
CREATE DATABASE
creëert een database met de gegeven naam. Om dit statement te gebruiken, heeft u de CREATE
privilege nodig voor de database. CREATE SCHEMA
is een synoniem voor CREATE DATABASE
.
Er treedt een fout op als de database bestaat en u IF NOT EXISTS
niet hebt opgegeven.
CREATE DATABASE
is niet toegestaan binnen een sessie die een actief LOCK TABLES
statement heeft.
Elke create_option
specificeert een database karakteristiek. Databasekenmerken worden opgeslagen in de data dictionary.
-
De optie
CHARACTER SET
specificeert de standaard databasetekenset. De optieCOLLATE
specificeert de standaardsamenstelling van de database. Zie Hoofdstuk 10, Tekensets, Sorteringen, Unicode voor informatie over tekenset- en collatienamen.Om de beschikbare tekensets en collaties te zien, gebruikt u respectievelijk de
SHOW CHARACTER SET
enSHOW COLLATION
verklaringen. Zie Paragraaf 13.7.7.3, “SHOW CHARACTER SET Statement”, en Paragraaf 13.7.7.4, “SHOW COLLATION Statement”. -
De optie
ENCRYPTION
, geïntroduceerd in MySQL 8.0.16, definieert de standaard databaseversleuteling, die wordt geërfd door tabellen die in de database worden aangemaakt. De toegestane waarden zijn'Y'
(encryptie ingeschakeld) en'N'
(encryptie uitgeschakeld). Als de optieENCRYPTION
niet is gespecificeerd, bepaalt de waarde van dedefault_table_encryption
systeemvariabele de standaard database encryptie. Als de systeemvariabeletable_encryption_privilege_check
is ingeschakeld, is het privilegeTABLE_ENCRYPTION_ADMIN
vereist om een standaardcoderingsinstelling op te geven die afwijkt van de instellingdefault_table_encryption
. Zie Een coderingsstandaard definiëren voor schema’s en algemene tabelruimten voor meer informatie.
Een database in MySQL is geïmplementeerd als een map met bestanden die corresponderen met tabellen in de database. Omdat er geen tabellen in een database staan wanneer deze voor het eerst wordt aangemaakt, creëert de CREATE DATABASE
-instructie alleen een directory onder de MySQL-datadirectory. Regels voor toelaatbare databasenamen worden gegeven in Paragraaf 9.2, “Schema Object Namen”. Als een databasenaam speciale tekens bevat, bevat de naam voor de databasemap gecodeerde versies van die tekens zoals beschreven in Paragraaf 9.2.4, “Mapping of Identifiers to File Names”.
Het aanmaken van een database directory door handmatig een directory aan te maken onder de data directory (bijvoorbeeld, met mkdir) wordt niet ondersteund in MySQL 8.0.
Wanneer u een database aanmaakt, laat de server de directory en de bestanden erin beheren. Het direct manipuleren van database directories en bestanden kan leiden tot inconsistenties en onverwachte resultaten.
MySQL heeft geen limiet op het aantal databases. Het onderliggende bestandssysteem kan een limiet hebben op het aantal directories.
U kunt ook het mysqladmin programma gebruiken om databases aan te maken. Zie Paragraaf 4.5.2, “mysqladmin – Een MySQL Server Beheerprogramma”.