以降のすべてのクエリにデフォルトのデータベースを設定する方法は次のとおりです。
MySQLでは、後続のSQLステートメントのコンテキストとして使用されるデフォルトのデータベースを設定できます。サーバー上には多くのデータベースが存在する可能性があり、MySQLはSQLステートメントを実行するデータベースを知る必要があります。デフォルトのデータベースを設定すると、クエリでデータベースを指定する必要がなくなるため、良いスタートです。
デフォルトのDBは何度でも変更できます。それは必ずしも「設定して忘れる」ことではありません。使用しているデータベースの数によっては、デフォルトのDBを頻繁に切り替える可能性があります。
デフォルトのデータベースは、プログラムまたはグラフィカルインターフェイスを介して設定できます。
MySQLWorkbenchGUIの使用
SCHEMAS のデータベース名を右クリックします タブ(左側のメニュー):
デフォルトのデータベースが太字で表示されるようになります 書体:
プログラムで
USE
ステートメントは、後続のSQLステートメントを実行するときにデフォルトとして特定のデータベースを使用するようにMySQLに指示します。
USE FruitShop;
これで、後続のクエリはすべて FruitShop に対して実行されます。 DB。このように:
USE FruitShop; SELECT * FROM Fruit;
CREATE DATABASE
スクリプト
USE
ステートメントは、データベースを作成するスクリプトで非常に役立ちます。データベースを作成したら、USE
を指定して、データベースをデフォルトのデータベースとして設定できます。 それに対する声明。
これを行うと、後続のSQLステートメントで、新しく作成されたデータベースが現在のDBとして使用されるようになります(スクリプトで特に指定されていない限り)。これは、テーブルを作成するDBをMySQLに指示するため重要です。
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
デフォルトデータベースの切り替え
スクリプト内でデフォルトのデータベースを複数回切り替えるのを止めるものは何もありません。したがって、データベースが2つある場合は、次のようにすることができます。
USE FruitShop; SELECT * FROM Fruit; USE VegeShop; SELECT * FROM Vegetables;
上記のクエリは、
Fruit
からすべてのレコードを選択します
FruitShop
のテーブル データベースと
Vegetables
のすべてのレコード
VegeShop
のテーブル データベース。 USE
なし ステートメントの場合、MySQLは各ステートメントに対してクエリを実行するデータベースを認識しません。
もちろん、これは単純化された例です。多くの場合、データベースに対してより複雑なクエリを実行していることに気付くでしょう。この手法は非常に役立ちます。
ステートメントでのDB名の修飾
デフォルトのデータベースを設定するかどうかに関係なく、内内のデータベースを指定することもできます。 ステートメント。
これを行うには、次の構文を使用します:database.table.column
次に例を示します:
SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;
デフォルトのDBを上書きする—クエリ内でデータベースを指定する
デフォルトのデータベースを設定しても、他のデータベースへのクエリが妨げられることはありません。デフォルトのデータベースを設定した後でも、他のデータベースをデフォルトとして設定しなくてもクエリを実行できます。クエリ内で使用するデータベースを引き続き指定できます。実際、このメソッドを使用すると、1つのクエリ内で複数のデータベースを使用できます。
したがって、上記の例は次のように書くこともできます。
USE FruitShop; SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;