DarkSQL by Darkleo.com

DarkSQL

Muster Datenbank

-- Tabellen erstellen
drop table lieferanten cascade constraints;
drop table artikel cascade constraints;
drop table artikellager cascade constraints;
drop table artikelbewegungen cascade constraints;
drop table kunden cascade constraints;
drop table auftraege cascade constraints;
drop table auftragspositionen cascade constraints;
drop table rechnungen cascade constraints;
drop table sachbearbeiter cascade constraints;


create table lieferanten(
lieferantennummer varchar(10) not null,
name varchar(30), 
strasse varchar(20),
hausnummer varchar(5),
plz int,
ort varchar(20),
primary key(lieferantennummer));


create table artikel(
artikel_nr varchar(27) not null,
bezeichnung varchar(40),
warengruppe int,
mengeneinheit varchar(10),
verkaufspreis number(10,2),
einkaufspreis number(10,2),
lieferzeit int,
bestand_lager int,
bestand_minimum int,
jahresumsatz number(10,2),
vorjahresumsatz number(10,2),
primary key(artikel_nr)); 


--anlegen artikellager
create table artikellager(
artikel_nr varchar(27) not null,
lager_nr int not null constraint lnr check(lager_nr > 0  and lager_nr < 4),
bestand_lager int not null,
primary key(artikel_nr, lager_nr),
foreign key(artikel_nr) references artikel(artikel_nr));


--anlegen Artikelbewegungen
create table artikelbewegungen(
artikel_nr varchar(27),
datum_uhrzeit timestamp not null,
auftrag_nr number(4),
position number(2),
kunde_nr number(5),
menge number (10),
verkaufspreis number(10,2),
verkaufswert number(10,2),
einstandspreis number(10,2),
einstandswert number(10,2),
primary key(artikel_nr, datum_uhrzeit));


--anlegen Kunden
create table kunden(
kunde_nr int not null,
name varchar(30),
strasse varchar(30),
plz_strasse varchar(5),
land varchar(3),
ort varchar(30),
kundengruppe int,
branche varchar(30),
vertreter_nr int,
gesperrt_kz int constraint k1 check(gesperrt_kz between 0 and 1)  not null,
datum_kreditauskunft date,
kreditlimit number(10,2),
saldo_offene_rechnungen number(10,2),
jahresumsatz number(10,2),
vorjahresumsatz number(10,2),
primary key(kunde_nr));


--anlegen Auftraege
create table auftraege(
auftrag_nr int not null,
auftrag_datum date default current_date,
kunde_nr int not null,
vertreter_nr int,
rabatt float,
sachbearbeiter_nr int,
porto number(10,2),
primary key(auftrag_nr));



--anlegen auftragspositionen
create table auftragspositionen(
auftrag_nr int,
position_nr int,
position_aktiv int constraint ap1 check(position_aktiv between 0 and 1),
artikel_nr varchar(27),
verkaufsmenge int,
verkaufspreis number(10,2),
termin date,
offen int,
geliefert int,
berechnet int,
primary key(auftrag_nr, position_nr));


--anlegen Rechnungen
create table rechnungen(
rechnung_nr int,
rechnung_datum date,
kunde_nr int,
auftrag_nr int,
sachbearbeiter_nr int,
warenwert number(10,2),
mwst_prozentsatz float,
rechnung_betrag number(10,2),
datum_faellig date,
datum_mahnung_1 date,
datum_mahnung_2 date,
zahlbetrag_gesamt number(10,2),
zahldatum date,
bezahlt number(1) constraint r1 check(bezahlt between 0 and 1),
primary key(rechnung_nr));


create table sachbearbeiter(
sachbearbeiter_nr int not null,
name varchar(30),
primary key(sachbearbeiter_nr));