2017-01-29 5 views
0

Ich lerne MySQL und dies ist wahrscheinlich die grundlegendste der grundlegenden Fragen, die ich stellen könnte, aber ich möchte sicherstellen, dass ich die Syntax verstehe.MySQL Spalten aus einer bestimmten Tabelle auswählen

Ich habe ein MySQL-Skript, das drei verschiedene Datenbanken erstellt. Wenn ich alle Felder aus einer bestimmten Datenbank-Tabelle auswählen möchte, würde ich verwenden

SELECT * from database1.table1 

richtig? Oder wäre es nur

SELECT * from table1 

und wenn ich nur zwei Felder aus einer anderen Tabelle wählen wollte, wäre es

SELECT field1, field2 from database1.table2 

oder wieder nur der Tabellenname?

+0

Suchen Sie in 'USE dbName;' Anweisung. Wenn Sie bereits eine Datenbank ausgewählt haben, die viele Clients standardmäßig verwenden, müssen Sie die Datenbank – Mihai

+0

nicht angeben. Dies hängt davon ab, ob Sie eine Datenbank angegeben haben oder nicht. Wenn ja, müssen Sie nicht die Datenbank angeben, die Sie bereits in der Abfrageanweisung angegeben haben. sonst tust du es. – Shiping

+0

Wenn ich diese Befehle nach dem Erstellen der Datenbanken in das Skript lege, was würde ich verwenden? – salivad

Antwort

0

Beide Formen sind eigentlich in Ordnung. In SQL können Sie Namen qualifizieren, um explizit anzugeben, wo sich ein db-Objekt befindet. Dies ist zum Beispiel nützlich, wenn Sie eine Tabelle2 in 2 verschiedenen Schemas haben (was der richtige Begriff ist anstelle von "Datenbank", BTW).

Wie bereits erwähnt, können Sie ein Standardschema festlegen, um zu vermeiden, dass Sie einer Referenz (wie Ihrer Tabelle2) ständig ein Schema hinzufügen müssen. Wenn kein Schema angegeben ist, wird stattdessen das Standardschema (festgelegt mit dem Befehl USE schema) verwendet. Sie können immer noch ein explizites Schema verwenden (entweder das, was als Standard oder ein anderes festgelegt ist), wenn Sie möchten. Dies wird hilfreich sein, wenn Sie auf ein Objekt zugreifen möchten, das nicht im Standardschema enthalten ist.

Verwandte Themen