Mysql
 sql >> Base de données >  >> RDS >> Mysql

Base de données MySQL par défaut

Voici comment définir une base de données par défaut pour toutes les requêtes suivantes.

MySQL vous permet de définir une base de données par défaut à utiliser comme contexte pour toutes les instructions SQL ultérieures. Il peut y avoir de nombreuses bases de données sur le serveur et MySQL doit savoir sur quelle base de données vous souhaitez exécuter une ou plusieurs instructions SQL. Définir une base de données par défaut est un bon début car cela vous évite d'avoir à spécifier la base de données dans la requête.

Vous pouvez modifier la base de données par défaut aussi souvent que vous le souhaitez. Ce n'est pas nécessairement une chose "réglée et oubliée". Selon le nombre de bases de données avec lesquelles vous travaillez, vous pouvez changer assez fréquemment de base de données par défaut.

Vous pouvez définir la base de données par défaut soit par programmation, soit via l'interface graphique.

Utilisation de l'interface graphique MySQL Workbench

Faites un clic droit sur le nom de la base de données dans les SCHEMAS onglet (dans le menu de gauche) :

La base de données par défaut sera désormais répertoriée en gras police :

Par programmation

Le USE indique à MySQL d'utiliser une base de données particulière par défaut lorsque vous exécutez des instructions SQL ultérieures.

USE FruitShop;

Désormais, toutes les requêtes ultérieures seront exécutées sur FruitShop BD. Comme ceci :

USE FruitShop;
SELECT * FROM Fruit;

Le CREATE DATABASE Scénario

Le USE déclaration peut vraiment être utile dans nos scripts qui créent des bases de données. Une fois que nous avons créé notre base de données, nous pouvons la définir comme base de données par défaut en spécifiant le USE déclaration à son encontre.

Cela garantira que toutes les instructions SQL ultérieures utiliseront notre base de données nouvellement créée comme base de données actuelle (sauf indication contraire dans le script). Ceci est important car il indique à MySQL sur quelle base de données créer les tables :

DROP DATABASE IF EXISTS FruitShop;
CREATE DATABASE FruitShop;
USE FruitShop;
CREATE TABLE table_1 (...);
CREATE TABLE table_2 (...);

Changement de base de données par défaut

Rien ne vous empêche de changer plusieurs fois de base de données par défaut dans vos scripts. Donc, si vous aviez deux bases de données, vous pourriez faire quelque chose comme ceci :

USE FruitShop;
SELECT * FROM Fruit;

USE VegeShop;
SELECT * FROM Vegetables;

La requête ci-dessus sélectionne tous les enregistrements du Fruit table dans le FruitShop base de données et tous les enregistrements de Légumes table dans le VegeShop base de données. Sans le USE instruction, MySQL ne saurait pas quelle base de données interroger pour chaque instruction.

Bien entendu, il s'agit d'un exemple simplifié. Vous vous retrouverez souvent à effectuer des requêtes plus complexes sur vos bases de données et cette technique peut vraiment vous aider.

Qualifier le nom de la base de données dans la déclaration

Que vous définissiez ou non une base de données par défaut, vous pouvez également spécifier la base de données dans la déclaration.

Pour cela, utilisez la syntaxe suivante :database.table.column

Voici un exemple :

SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables
WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;

Remplacer la base de données par défaut :spécifiez la base de données dans une requête

La définition d'une base de données par défaut ne vous empêche pas d'interroger d'autres bases de données. Même après avoir défini une base de données par défaut, vous pouvez toujours interroger d'autres bases de données sans avoir à les définir par défaut. Vous pouvez toujours spécifier la base de données à utiliser dans vos requêtes. En fait, vous pouvez utiliser plusieurs bases de données dans une seule requête en utilisant cette méthode.

Ainsi, l'exemple ci-dessus pourrait également s'écrire comme suit :

USE FruitShop;
SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables
WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;