Apache Derby - Şemalar

Bir veritabanı şeması, tüm veritabanının mantıksal görünümünü temsil eden iskelet yapısıdır. Verilerin nasıl organize edildiğini ve aralarındaki ilişkilerin nasıl ilişkilendirildiğini tanımlar. Verilere uygulanacak tüm kısıtlamaları formüle eder.

Şema Oluşturmak

CREATE SCHEMA deyimini kullanarak Apache Derby'de bir şema oluşturabilirsiniz.

Sözdizimi

CREATE SCHEMA deyiminin sözdizimi aşağıdadır.

CREATE SCHEMA schema_name AUTHORIZATION id

Misal

Aşağıdaki örnek, Derby veritabanında my_schema adlı bir şema oluşturur.

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

Daha sonra bu şemada aşağıda gösterildiği gibi bir tablo oluşturabilirsiniz.

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 sorgusunu kullanarak şema listesini doğrulayabilirsiniz, burada oluşturulan şemaların listesini bulabilirsiniz.

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

Şema Bırakma

DROP SCHEMA deyimini kullanarak mevcut bir şemayı bırakabilirsiniz.

Sözdizimi

DROPS SCHEMA ifadesinin sözdizimi aşağıdadır.

DROP SCHEMA my_schema RESTRICT;

Misal

Bir şemayı yalnızca içinde nesne yoksa silebilirsiniz. Şemayı silmek için içindeki tüm tabloları silin ve şemayı silin.

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

Aşağıdaki örnek, yukarıda oluşturulan şemayı bırakır.

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

JDBC Örneği

Aşağıdaki JDBC örneği, my_schema adlı bir şema oluşturur ve bırakır.

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");
   }
}

Çıktı

Yürütüldüğünde, yukarıdaki program aşağıdaki örneği oluşturur.

Table created in schema
Schema dropped