Zoeken…


Syntaxis

  • CREËER {DATABASE | SCHEMA} [INDIEN NIET BESTAAT] db_name [create_specification] /// Om een database aan te maken
  • DROP {DATABASE | SCHEMA} [ALS BESTAAT] db_name /// Om de database te verwijderen

parameters

Parameter Details
DATABASE MAKEN Maakt een database met de opgegeven naam
SCHEMA MAKEN Dit is een synoniem voor CREATE DATABASE
INDIEN NIET BESTAAT Wordt gebruikt om uitvoeringsfouten te voorkomen, als de opgegeven database al bestaat
create_specification create_specification options specificeren databasekenmerken zoals CHARACTER SET en COLLATE (database-sortering)

Maak een database, gebruikers en subsidies

Maak een DATABASE. Merk op dat het verkorte woord SCHEMA als synoniem kan worden gebruikt.

CREATE DATABASE Baseball; -- creates a database named Baseball

Als de database al bestaat, wordt Fout 1007 geretourneerd. Probeer het volgende om deze fout te omzeilen:

CREATE DATABASE IF NOT EXISTS Baseball;

Evenzo

DROP DATABASE IF EXISTS Baseball; -- Drops a database if it exists, avoids Error 1008
DROP DATABASE xyz; -- If xyz does not exist, ERROR 1008 will occur

Vanwege de bovenstaande foutmogelijkheden worden DDL-instructies vaak gebruikt met IF EXISTS .

Men kan een database maken met een standaard KARAKTERSET en sortering. Bijvoorbeeld:

CREATE DATABASE Baseball CHARACTER SET utf8 COLLATE utf8_general_ci;

SHOW CREATE DATABASE Baseball;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| Baseball | CREATE DATABASE `Baseball` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+

Bekijk uw huidige databases:

SHOW DATABASES;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| ajax_stuff          |
| Baseball            |
+---------------------+

Stel de momenteel actieve database in en bekijk wat informatie:

USE Baseball; -- set it as the current database
SELECT @@character_set_database as cset,@@collation_database as col;
+------+-----------------+
| cset | col             |
+------+-----------------+
| utf8 | utf8_general_ci |
+------+-----------------+

Het bovenstaande toont de standaard KARAKTERSET en sortering voor de database.

Maak een gebruiker aan:

CREATE USER 'John123'@'%' IDENTIFIED BY 'OpenSesame';

Bovenstaande creëert een gebruiker John123, die verbinding kan maken met elke hostnaam vanwege het % jokerteken. Het wachtwoord voor de gebruiker is ingesteld op 'OpenSesame' dat is gehasht.

En maak er nog een:

CREATE USER 'John456'@'%' IDENTIFIED BY 'somePassword';

Laat zien dat de gebruikers zijn gemaakt door de speciale mysql database te onderzoeken:

SELECT user,host,password from mysql.user where user in ('John123','John456');
+---------+------+-------------------------------------------+
| user    | host | password                                  |
+---------+------+-------------------------------------------+
| John123 | %    | *E6531C342ED87 ....................       |
| John456 | %    | *B04E11FAAAE9A ....................       |
+---------+------+-------------------------------------------+

Merk op dat op dit moment de gebruikers zijn gemaakt, maar zonder enige machtiging om de Baseball-database te gebruiken.

Werk met machtigingen voor gebruikers en databases. Verleen rechten aan gebruiker John123 om volledige rechten te hebben op de Baseball-database en alleen SELECT-rechten voor de andere gebruiker:

GRANT ALL ON Baseball.* TO 'John123'@'%';
GRANT SELECT ON Baseball.* TO 'John456'@'%';

Controleer het bovenstaande:

SHOW GRANTS FOR 'John123'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John123@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John123'@'%' IDENTIFIED BY PASSWORD '*E6531C342ED87 ....................        |
| GRANT ALL PRIVILEGES ON `baseball`.* TO 'John123'@'%'                                                  |
+--------------------------------------------------------------------------------------------------------+

SHOW GRANTS FOR 'John456'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John456@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John456'@'%' IDENTIFIED BY PASSWORD '*B04E11FAAAE9A ....................        |
| GRANT SELECT ON `baseball`.* TO 'John456'@'%'                                                          |
+--------------------------------------------------------------------------------------------------------+

Merk op dat het GRANT USAGE dat u altijd zult zien, eenvoudigweg betekent dat de gebruiker kan inloggen. Dat is alles wat dat betekent.

MyDatabase

U moet uw eigen database maken en geen schrijven naar een van de bestaande databases gebruiken. Dit is waarschijnlijk een van de eerste dingen die u moet doen nadat u voor het eerst verbinding hebt gemaakt.

CREATE DATABASE my_db;
USE my_db;
CREATE TABLE some_table;
INSERT INTO some_table ...;

U kunt naar uw tabel verwijzen door u te kwalificeren met de databasenaam: my_db.some_table .

Systeemdatabases

De volgende databases bestaan voor het gebruik van MySQL. U mag ze lezen ( SELECT ), maar u mag de tabellen erin niet invoeren ( INSERT / UPDATE / DELETE ). (Er zijn enkele uitzonderingen.)

  • mysql - repository voor GRANT info en enkele andere dingen.
  • information_schema - De tabellen hier zijn 'virtueel' in de zin dat ze feitelijk tot uiting komen in structuren in het geheugen. Hun inhoud omvat het schema voor alle tabellen.
  • performance_schema - ?? [accepteer, dan bewerken]
  • anderen ?? (voor MariaDB, Galera, TokuDB, enz.)

Een database maken en selecteren

Als de beheerder uw database voor u maakt bij het instellen van uw machtigingen, kunt u deze gaan gebruiken. Anders moet u het zelf maken:

mysql> CREATE DATABASE menagerie;

Onder Unix zijn databasenamen hoofdlettergevoelig (in tegenstelling tot SQL-trefwoorden), dus u moet altijd naar uw database verwijzen als menagerie, niet als Menagerie, MENAGERIE of een andere variant. Dit geldt ook voor tabelnamen. (Onder Windows is deze beperking niet van toepassing, hoewel u in een bepaalde query naar databases en tabellen moet verwijzen met dezelfde lettercase. Om verschillende redenen is het echter aanbevolen om altijd dezelfde lettercase te gebruiken die werd gebruikt toen de database is gemaakt.)

Het maken van een database selecteert deze niet voor gebruik; u moet dat expliciet doen. Gebruik deze verklaring om van menagerie de huidige database te maken:

mysql> USE menagerie
Database changed

Uw database hoeft slechts eenmaal te worden gemaakt, maar u moet deze selecteren voor gebruik telkens wanneer u een MySQL-sessie start. U kunt dit doen door een USE-verklaring af te geven zoals in het voorbeeld. Als alternatief kunt u de database op de opdrachtregel selecteren wanneer u mysql aanroept. Geef gewoon de naam op na eventuele verbindingsparameters die u mogelijk moet opgeven. Bijvoorbeeld:

shell> mysql -h host -u user -p menagerie
Enter password: ********


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow