This repository has been archived on 2020-04-03. You can view files and clone it, but cannot push or open issues or pull requests.
ibz/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A1.sql

119 lines
3.3 KiB
Transact-SQL
Raw Blame History

-- 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