Mysql
 sql >> Database >  >> RDS >> Mysql

Database predefinito MySQL

Ecco come impostare un database predefinito per tutte le query successive.

MySQL consente di impostare un database predefinito da utilizzare come contesto per eventuali istruzioni SQL successive. Potrebbero esserci molti database sul server e MySQL deve sapere su quale database si desidera eseguire qualsiasi istruzione SQL. L'impostazione di un database predefinito è un buon inizio in quanto ti evita di dover specificare il database nella query.

Puoi modificare il DB predefinito tutte le volte che vuoi. Non è necessariamente una cosa "imposta e dimentica". A seconda del numero di database con cui stai lavorando, potresti cambiare il DB predefinito abbastanza frequentemente.

È possibile impostare il database predefinito a livello di codice o tramite l'interfaccia grafica.

Utilizzo della GUI di MySQL Workbench

Fare clic con il pulsante destro del mouse sul nome del database in SCHEMI scheda (nel menu a sinistra):

Il database predefinito sarà ora elencato in grassetto carattere tipografico:

Programmaticamente

Il USE dice a MySQL di utilizzare un database particolare come predefinito quando esegui istruzioni SQL successive.

USE FruitShop;

Ora tutte le query successive verranno eseguite su FruitShop DB. In questo modo:

USE FruitShop;
SELECT * FROM Fruit;

Il CREATE DATABASE copione

Il USE istruzione può davvero tornare utile nei nostri script che creano database. Una volta creato il nostro database, possiamo impostarlo come database predefinito specificando il USE dichiarazione contro di essa.

In questo modo, tutte le istruzioni SQL successive utilizzeranno il nostro database appena creato come DB corrente (se non diversamente specificato nello script). Questo è importante perché dice a MySQL su quale DB creare le tabelle:

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

Cambiare il database predefinito

Non c'è niente che ti impedisca di cambiare il database predefinito più volte all'interno dei tuoi script. Quindi, se avessi due database, potresti fare qualcosa del genere:

USE FruitShop;
SELECT * FROM Fruit;

USE VegeShop;
SELECT * FROM Vegetables;

La query precedente seleziona tutti i record da Frutta tabella nel FruitShop database e tutti i record di Vegetables tabella nel VegeShop Banca dati. Senza il USE istruzione, MySQL non saprebbe quale database interrogare per ciascuna istruzione.

Naturalmente, questo è un esempio semplificato. Spesso ti ritroverai a fare query più complesse sui tuoi database e questa tecnica può davvero aiutarti.

Qualifica del nome DB nell'estratto conto

Indipendentemente dal fatto che imposti un database predefinito, puoi anche specificare il database all'interno la dichiarazione.

Per fare ciò, usa la seguente sintassi:database.table.column

Ecco un esempio:

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

Sostituisci il DB predefinito:specifica il database all'interno di una query

L'impostazione di un database predefinito non impedisce di eseguire query su altri database. Anche dopo aver impostato un database predefinito, puoi comunque interrogare altri database senza doverli impostare come predefiniti. Puoi comunque specificare quale database utilizzare all'interno delle tue query. In effetti, puoi utilizzare più database all'interno di una singola query utilizzando questo metodo.

Quindi l'esempio sopra potrebbe anche essere scritto come segue:

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