Apache Derby - Esquemas

Um esquema de banco de dados é a estrutura de esqueleto que representa a visão lógica de todo o banco de dados. Define como os dados são organizados e como as relações entre eles são associadas. Ele formula todas as restrições que devem ser aplicadas aos dados.

Criação de um esquema

Você pode criar um esquema no Apache Derby usando a instrução CREATE SCHEMA.

Sintaxe

A seguir está a sintaxe da instrução CREATE SCHEMA.

CREATE SCHEMA schema_name AUTHORIZATION id

Exemplo

O exemplo a seguir cria um esquema denominado my_schema no banco de dados Derby.

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

Em seguida, você pode criar uma tabela neste esquema conforme mostrado abaixo.

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

Você pode verificar a lista de esquemas usando a consulta SHOW SCHEMAS aqui você pode encontrar a lista de esquemas criados.

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

Eliminando um esquema

Você pode eliminar um esquema existente usando a instrução DROP SCHEMA.

Sintaxe

A seguir está a sintaxe da instrução DROPS SCHEMA.

DROP SCHEMA my_schema RESTRICT;

Exemplo

Você pode excluir um esquema apenas se não houver nenhum objeto nele. Para excluir o esquema, exclua todas as tabelas nele e exclua o esquema.

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

O exemplo a seguir elimina o esquema criado acima.

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

Exemplo JDBC

O exemplo de JDBC a seguir cria e elimina um esquema denominado 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");
   }
}

Resultado

Ao ser executado, o programa acima gera o seguinte exemplo.

Table created in schema
Schema dropped