Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:db:derby

Erste Schritte mit der Derby-Datenbank

Derby kann hier herunter geladen werden.

Alles, was auf dieser Seite kurz erklärt wird, gibt es noch viel ausführlicher. Nach kurzer Zeit will man mehr über die Befehle wissen. Oder hier

ij ist ein Skript, das intensiv nach seiner eigenen Lage forscht und dann die entsprechende Klasse startet. Folgendermaßen wird eine Datenbank in dem Verzeichnis angelegt, in dem ij gestartet wurde und ein Nicht-Server-Prozess gestartet:

pfadzu/ij
> connect 'jdbc:derby:hierbank;create=true';

Die meisten anderen Skripte finden sich und derby.jar nicht so leicht automatisch, weshalb es sinnvoll ist, DERBY_HOME zu setzen mit z.B.

export DERBY_HOME=/pfad/zu/derby

bzw. in Windows

set DERBY_HOME=/pfad/zu/derby

Praktisch viel wichtiger ist aber die Umgebungsvariable CLASSPATH. Erst wenn sie korrekt gesetzt ist, kann ein beliebiges Java-Programm automatisch die entsprechenden Klassen einbinden. Den Classpath kann man selber setzen oder durch Aufruf eines Skripts. Damit das Ergebnis erhalten bleibt, muss ein solches Skript in Linux gesourct werden, z.B.

. /bin/setEmbeddedCP
. /bin/setNetworkServerCP

In Windows ruft man es einfach auf; die darin definierten Umgebungsvariablen bleiben global erhalten.

Einen Server, der von überallher Anfragen annimmt, startet und stoppt man mit

java -jar lib/derbyrun.jar server start -h 0.0.0.0 &
java -jar lib/derbyrun.jar server shutdown

Auf einen entfernten Server greift man z.B. aus ij heraus zu per

connect 'jdbc:derby://localhost:1527//pfad/zu/hierbank';

Von den wichtigsten SQL-Befehlen folgen hier einige Auszüge:

create table person(
  pid integer primary key generated always as identity,
  name varchar(20) not null,
  geb date
);
create table mag(
  moeger integer not null,
  gemocht integer not null,
  primary key(moeger,gemocht),
  constraint m_fs foreign key(moeger) references person(pid),
  constraint g_fs foreign key(gemocht) references person(pid)
);
insert into person(name, geb) values('Cindy','1946-07-12');
insert into person(name, geb) values('Bert', '1944-03-02');
insert into person(name, geb) values('Franz','1965-03-26');
insert into mag values(1,1);
insert into mag values(1,2);
insert into mag values(2,2);
update person set geb='1946-07-22' where pid=1;
delete from person where name='Franz';
select a.name, b.name
from person a, person b, mag m
where a.pid=m.moeger and b.pid=m.gemocht;

describe mag;

Anmerkungen

  • Automatisch inkrementierende Primärschlüssel mit
  id integer primary key generated always as identity
  id integer primary key generated by default as identity
info/db/derby.txt · Zuletzt geändert: 2011/02/23 22:14 von admin