Apache-derby-schemas

提供:Dev Guides
移動先:案内検索

Apache Derby-スキーマ

データベーススキーマは、データベース全体の論理ビューを表すスケルトン構造です。 データの編成方法とデータ間の関係の関連付け方法を定義します。 データに適用されるすべての制約を定式化します。

スキーマを作成する

CREATE SCHEMAステートメントを使用して、Apache Derbyでスキーマを作成できます。

構文

以下は、CREATE SCHEMAステートメントの構文です。

CREATE SCHEMA schema_name AUTHORIZATION id

次の例では、Derbyデータベースにmy_schemaという名前のスキーマを作成します。

ij> CREATE SCHEMA AUTHORIZATION my_schema;
0 rows inserted/updated/deleted

次に、以下に示すように、このスキーマにテーブルを作成できます。

ij> CREATE TABLE my_schema.Emp ( Id INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   Name VARCHAR(255),
   Salary INT NOT NULL,
   Location VARCHAR(255),
   Phone_Number BIGINT
);
> > > > > 0 rows inserted/updated/deleted

ここでSHOW SCHEMASクエリを使用してスキーマのリストを確認できます。作成されたスキーマのリストを見つけることができます。

ij> show schemas;
TABLE_SCHEM
------------------------------
APP
MY_SCHEMA
NULLID
SQLJ
SYS
SYSCAT
SYSCS_DIAG
SYSCS_UTIL
SYSFUN
SYSIBM
SYSPROC
SYSSTAT
12 rows selected

スキーマの削除

DROP SCHEMAステートメントを使用して、既存のスキーマを削除できます。

構文

DROPS SCHEMAステートメントの構文は次のとおりです。

DROP SCHEMA my_schema RESTRICT;

スキーマを削除できるのは、オブジェクトが含まれていない場合のみです。 スキーマを削除するには、そのスキーマ内のすべてのテーブルを削除し、スキーマを削除します。

ij> DROP TABLE my_schema.Emp;
0 rows inserted/updated/deleted

次の例では、上記で作成したスキーマを削除します。

ij> DROP SCHEMA my_schema RESTRICT;
0 rows inserted/updated/deleted

JDBCの例

次のJDBCの例では、my_schemaという名前のスキーマを作成および削除します。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateSchemaExample {
   public static void main(String args[]) throws Exception {
     //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
     //Getting the Connection object
      String URL = "jdbc:derby:sampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

     //Creating the Statement object
      Statement stmt = conn.createStatement();

      stmt.execute("CREATE SCHEMA AUTHORIZATION my_schema");
     //Executing the query
      String query = "CREATE TABLE my_schema.Employees( "
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), "
         + "Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))";
      stmt.execute(query);
      System.out.println("Table created in schema");
      stmt.execute("DROP TABLE my_schema.Employees");
      stmt.execute("DROP SCHEMA my_schema RESTRICT");
      System.out.println("Schema dropped");
   }
}

出力

実行すると、上記のプログラムは次の例を生成します。

Table created in schema
Schema dropped