Recherche…


Syntaxe

  • CREATE {BASE DE DONNEES | SCHEMA} [SI N'EXISTE PAS] db_name [create_specification] /// Pour créer une base de données
  • DROP {BASE DE DONNEES | SCHEMA} [IF EXISTS] nom_base /// Pour supprimer une base de données

Paramètres

Paramètre Détails
CREATE DATABASE Crée une base de données avec le nom donné
CRÉER UN SCHEMA Ceci est un synonyme de CREATE DATABASE
SI PAS EXISTANT Utilisé pour éviter les erreurs d'exécution, si la base de données spécifiée existe déjà
create_specification create_specification options create_specification spécifient les caractéristiques de la base de données, telles que CHARACTER SET et COLLATE (classement de la base de données).

Créer une base de données, des utilisateurs et des subventions

Créez une base de données. Notez que le mot abrégé SCHEMA peut être utilisé comme synonyme.

CREATE DATABASE Baseball; -- creates a database named Baseball

Si la base de données existe déjà, l'erreur 1007 est renvoyée. Pour contourner cette erreur, essayez:

CREATE DATABASE IF NOT EXISTS Baseball;

De même,

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

En raison des possibilités d'erreur ci-dessus, les instructions DDL sont souvent utilisées avec IF EXISTS .

On peut créer une base de données avec un jeu de caractères et un classement par défaut. Par exemple:

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 */ |
+----------+-------------------------------------------------------------------+

Voir vos bases de données actuelles:

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

Définissez la base de données active et consultez des informations:

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

Ce qui précède montre le groupe de caractères et le classement par défaut pour la base de données.

Créez un utilisateur:

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

Ce qui précède crée un utilisateur John123, capable de se connecter avec n'importe quel nom d'hôte en raison du caractère générique % . Le mot de passe de l'utilisateur est défini sur "OpenSesame" qui est haché.

Et créer un autre:

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

Montrer que les utilisateurs ont été créés en examinant la base de données spéciale mysql :

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

Notez qu'à ce stade, les utilisateurs ont été créés, mais sans aucune autorisation d'utiliser la base de données Baseball.

Travailler avec des autorisations pour les utilisateurs et les bases de données. Accordez des droits à l'utilisateur John123 pour disposer de tous les privilèges sur la base de données Baseball, et ne sélectionnez que les droits SELECT pour l'autre utilisateur:

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

Vérifiez ce qui précède:

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'@'%'                                                          |
+--------------------------------------------------------------------------------------------------------+

Notez que l'utilisation de la GRANT USAGE que vous verrez toujours signifie simplement que l'utilisateur peut se connecter. C'est tout ce que cela signifie.

MyDatabase

Vous devez créer votre propre base de données et ne pas utiliser l'écriture dans les bases de données existantes. Ce sera probablement l'une des toutes premières choses à faire après la première connexion.

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

Vous pouvez référencer votre table en vous qualifiant avec le nom de la base de données: my_db.some_table .

Bases de données système

Les bases de données suivantes existent pour l'utilisation de MySQL. Vous pouvez les lire ( SELECT ), mais vous ne devez pas écrire ( INSERT / UPDATE / DELETE ) les tableaux qu'ils contiennent. (Il y a quelques exceptions.)

  • mysql - repository pour les informations GRANT et quelques autres choses.
  • information_schema - Les tables ici sont «virtuelles» en ce sens qu'elles se manifestent en réalité par des structures en mémoire. Leur contenu inclut le schéma de toutes les tables.
  • performance_schema - ?? [veuillez accepter, puis éditer]
  • autres?? (pour MariaDB, Galera, TokuDB, etc.)

Création et sélection d'une base de données

Si l'administrateur crée votre base de données pour vous lors de la configuration de vos autorisations, vous pouvez commencer à l'utiliser. Sinon, vous devez le créer vous-même:

mysql> CREATE DATABASE menagerie;

Sous Unix, les noms de base de données sont sensibles à la casse (contrairement aux mots-clés SQL), vous devez donc toujours faire référence à votre base de données en tant que ménagerie, et non Menagerie, MENAGERIE ou toute autre variante. Cela est également vrai pour les noms de table. (Sous Windows, cette restriction ne s’applique pas, même si vous devez faire référence à des bases de données et à des tables utilisant la même lettre dans une requête donnée. Cependant, pour diverses raisons, la meilleure pratique recommandée consiste à la base de données a été créée.)

La création d'une base de données ne la sélectionne pas pour être utilisée. vous devez le faire explicitement. Pour faire de la ménagerie la base de données courante, utilisez cette instruction:

mysql> USE menagerie
Database changed

Votre base de données doit être créée une seule fois, mais vous devez la sélectionner pour l'utiliser chaque fois que vous démarrez une session mysql. Vous pouvez le faire en émettant une instruction USE comme indiqué dans l'exemple. Vous pouvez également sélectionner la base de données sur la ligne de commande lorsque vous appelez mysql. Indiquez simplement son nom après tout paramètre de connexion que vous pourriez avoir à fournir. Par exemple:

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow