Apache Derby - Schemi
Uno schema di database è la struttura scheletro che rappresenta la vista logica dell'intero database. Definisce come sono organizzati i dati e come sono associate le relazioni tra loro. Formula tutti i vincoli che devono essere applicati ai dati.
Creazione di uno schema
È possibile creare uno schema in Apache Derby utilizzando l'istruzione CREATE SCHEMA.
Sintassi
Di seguito è riportata la sintassi per l'istruzione CREATE SCHEMA.
CREATE SCHEMA schema_name AUTHORIZATION id
Esempio
L'esempio seguente crea uno schema denominato my_schema nel database Derby.
ij> CREATE SCHEMA AUTHORIZATION my_schema;
0 rows inserted/updated/deleted
Quindi, puoi creare una tabella in questo schema come mostrato di seguito.
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
È possibile verificare l'elenco degli schemi utilizzando la query SHOW SCHEMAS qui è possibile trovare l'elenco degli schemi creati.
ij> show schemas;
TABLE_SCHEM
------------------------------
APP
MY_SCHEMA
NULLID
SQLJ
SYS
SYSCAT
SYSCS_DIAG
SYSCS_UTIL
SYSFUN
SYSIBM
SYSPROC
SYSSTAT
12 rows selected
Eliminazione di uno schema
È possibile eliminare uno schema esistente utilizzando l'istruzione DROP SCHEMA.
Sintassi
Di seguito è riportata la sintassi dell'istruzione DROPS SCHEMA.
DROP SCHEMA my_schema RESTRICT;
Esempio
È possibile eliminare uno schema solo se non contiene alcun oggetto. Per eliminare lo schema, eliminare tutte le tabelle in esso contenute ed eliminare lo schema.
ij> DROP TABLE my_schema.Emp;
0 rows inserted/updated/deleted
L'esempio seguente elimina lo schema creato sopra.
ij> DROP SCHEMA my_schema RESTRICT;
0 rows inserted/updated/deleted
Esempio JDBC
L'esempio JDBC seguente crea e rilascia uno schema denominato 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");
}
}
Produzione
All'esecuzione, il programma precedente genera il seguente esempio.
Table created in schema
Schema dropped