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