Apache Derby - Schémas

Un schéma de base de données est la structure squelette qui représente la vue logique de l'ensemble de la base de données. Il définit comment les données sont organisées et comment les relations entre elles sont associées. Il formule toutes les contraintes à appliquer aux données.

Créer un schéma

Vous pouvez créer un schéma dans Apache Derby à l'aide de l'instruction CREATE SCHEMA.

Syntaxe

Voici la syntaxe de l'instruction CREATE SCHEMA.

CREATE SCHEMA schema_name AUTHORIZATION id

Exemple

L'exemple suivant crée un schéma nommé my_schema dans la base de données Derby.

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

Ensuite, vous pouvez créer une table dans ce schéma comme indiqué ci-dessous.

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

Vous pouvez vérifier la liste des schémas à l'aide de la requête SHOW SCHEMAS. Ici, vous pouvez trouver la liste des schémas créés.

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

Supprimer un schéma

Vous pouvez supprimer un schéma existant à l'aide de l'instruction DROP SCHEMA.

Syntaxe

Voici la syntaxe de l'instruction DROPS SCHEMA.

DROP SCHEMA my_schema RESTRICT;

Exemple

Vous ne pouvez supprimer un schéma que s'il ne contient aucun objet. Pour supprimer le schéma, supprimez toutes les tables qu'il contient et supprimez le schéma.

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

L'exemple suivant supprime le schéma créé ci-dessus.

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

Exemple JDBC

L'exemple JDBC suivant crée et supprime un schéma nommé 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");
   }
}

Production

Lors de l'exécution, le programme ci-dessus génère l'exemple suivant.

Table created in schema
Schema dropped