sql >> データベース >  >> RDS >> Mysql

MySQLデフォルトデータベース

    以降のすべてのクエリにデフォルトのデータベースを設定する方法は次のとおりです。

    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 ;

    1. HibernateのScrollableResultsを使用して9千万件のレコードをゆっくりと読み取る

    2. PostgreSQLはWHERE句で列エイリアスを受け入れません

    3. Oracleにテーブルがまだ存在しない場合にテーブルを作成する2つの方法

    4. それぞれ1つのスキーマを持つ複数のデータベースを使用するのが良いですか、それとも複数のスキーマを持つ1つのデータベースを使用するのが良いですか?