119 lines
3.3 KiB
Transact-SQL
119 lines
3.3 KiB
Transact-SQL
-- Dateiname zweili_andreas_A1.sql
|
||
--
|
||
-- Beschreibung: SEP Datenbank 2 Gartencenter
|
||
--
|
||
-- Autor: Andreas Zweili
|
||
-- Datum: 11.03.2017
|
||
-- Server Version: SQL Server 2016
|
||
|
||
-- Tabelle Lieferant erstellen
|
||
if not exists (select * from sys.databases where name='Gartencenter')
|
||
CREATE DATABASE Gartencenter;
|
||
|
||
use Gartencenter
|
||
if not exists (select * from sysobjects where name='Lieferant')
|
||
CREATE TABLE Lieferant (
|
||
LFR_CODE int identity(1,1) not null,
|
||
LFR_NAME varchar(40) null,
|
||
LFR_ADRESSE varchar(40) null,
|
||
LFR_PLZ int null,
|
||
LFR_WOHNORT varchar(40) null
|
||
constraint PK_LFR_CODE primary key (LFR_CODE)
|
||
);
|
||
go
|
||
|
||
-- Tabelle Bestellung erstellen
|
||
use Gartencenter
|
||
if not exists (select * from sysobjects where name='Bestellung')
|
||
CREATE TABLE Bestellung (
|
||
BES_ID int identity(1,1) not null,
|
||
BES_BESTELLDATUM date not null,
|
||
BES_LIEFERDATUM date not null,
|
||
BES_BETRAG float not null,
|
||
LFR_CODE int not null
|
||
constraint PK_BES_ID primary key (BES_ID)
|
||
);
|
||
go
|
||
|
||
-- Tabelle Pflanze erstellen
|
||
use Gartencenter
|
||
if not exists (select * from sysobjects where name='Pflanze')
|
||
CREATE TABLE Pflanze (
|
||
PFL_ID int identity(1,1) not null,
|
||
PFL_NAME varchar(40) null,
|
||
PFL_SORTE varchar(40) null,
|
||
PFL_FARBE varchar(40) null,
|
||
PFL_HOEHE float null,
|
||
PFL_BEGIN date null,
|
||
PFL_END date null,
|
||
PFL_PREIS float null
|
||
constraint PK_PFL_ID primary key (PFL_ID)
|
||
);
|
||
go
|
||
|
||
-- Tabelle Angebot erstellen
|
||
use Gartencenter
|
||
if not exists (select * from sysobjects where name='Angebot')
|
||
CREATE TABLE Angebot (
|
||
ANG_ID int identity(1,1) not null,
|
||
PFL_ID int not null,
|
||
LFR_CODE int not null,
|
||
ANG_PREIS varchar(40) null,
|
||
ANG_LIEFERZEIT int null
|
||
constraint PK_ANG_ID primary key (ANG_ID)
|
||
);
|
||
go
|
||
|
||
-- Tabelle Bestelldaten erstellen
|
||
use Gartencenter
|
||
if not exists (select * from sysobjects where name='Bestelldaten')
|
||
CREATE TABLE Bestelldaten (
|
||
ANG_ID int not null,
|
||
BES_ID int not null,
|
||
BED_ANZAHL int null,
|
||
BED_EINZELPREIS float null
|
||
constraint PK_BESTELLDATEN primary key (ANG_ID, BES_ID)
|
||
);
|
||
go
|
||
|
||
|
||
-- Foreign Key Constraints hinzuf<75>gen
|
||
IF OBJECT_ID('dbo.[FK_LFR_CODE]', 'F') IS NULL
|
||
ALTER TABLE Bestellung ADD CONSTRAINT FK_LFR_CODE
|
||
FOREIGN KEY (LFR_CODE) REFERENCES Lieferant (LFR_CODE);
|
||
go
|
||
|
||
IF OBJECT_ID('dbo.[FK_PFL_ID]', 'F') IS NULL
|
||
ALTER TABLE Angebot ADD CONSTRAINT FK_PFL_ID
|
||
FOREIGN KEY (PFL_ID) REFERENCES Pflanze (PFL_ID);
|
||
go
|
||
|
||
IF OBJECT_ID('dbo.[FK_LFR_CODE_ANGEBOT]', 'F') IS NULL
|
||
ALTER TABLE Angebot ADD CONSTRAINT FK_LFR_CODE_ANGEBOT
|
||
FOREIGN KEY (LFR_CODE) REFERENCES Lieferant (LFR_CODE);
|
||
go
|
||
|
||
IF OBJECT_ID('dbo.[FK_BESTELLUNG_ANGEBOT]', 'F') IS NULL
|
||
ALTER TABLE Bestelldaten ADD CONSTRAINT FK_BESTELLUNG_ANGEBOT
|
||
FOREIGN KEY (ANG_ID) REFERENCES Angebot(ANG_ID),
|
||
FOREIGN KEY (BES_ID) REFERENCES Bestellung(BES_ID);
|
||
go
|
||
|
||
-- Check Constraints on Pflanze
|
||
IF OBJECT_ID('dbo.[C_PFL_PREIS]', 'C') IS NULL
|
||
ALTER TABLE Pflanze ADD CONSTRAINT C_PFL_PREIS
|
||
CHECK (Pflanze.PFL_PREIS > 0.0);
|
||
go
|
||
|
||
IF OBJECT_ID('dbo.[C_PFL_END]', 'C') IS NULL
|
||
ALTER TABLE Pflanze ADD CONSTRAINT C_PFL_END
|
||
CHECK (Pflanze.PFL_BEGIN < Pflanze.PFL_END);
|
||
go
|
||
|
||
-- Check Constraint on Bestellung
|
||
|
||
IF OBJECT_ID('dbo.[C_BES_LIEFERDATUM]', 'C') IS NULL
|
||
ALTER TABLE Bestellung ADD CONSTRAINT C_BES_LIEFERDATUM
|
||
CHECK (Bestellung.BES_LIEFERDATUM > CURRENT_TIMESTAMP)
|
||
go
|