Pflanzendatenbank [Noob fängt an]

Ja stimmt die Daten sind ja noch nicht im Skript :) SORRY!!!

Danke für das Beispiel. So dachte ich mir das auch.
Ich werde jetzt mal die Datensätze eintragen und mich dann nochmal melden.

Bis dahin
Gruß
 
Werbung:
Hallo Leute,

ich habe das Projekt weiter fertiggestellt und es befinden sich nun Datensätze in der Datenbank. Hier die Skripte:

Code:
USE    My_Plantz


--#SKRIPT: Erstellen der Haupt- bzw. "Schlüssel"-tabellen.
--#TABELLEN_OHNE_FREMDSCHLÜSSEL ! BEGIN / BEGIN !


--Erstelle Tabelle "T_Pflanzenfamilie"
--Erstelle "PRIMARY KEY" auf Pk_Fam_ID
USE My_Plantz
CREATE TABLE
    T_Pflanzenfamilien
        (Pk_Fam_ID int NOT NULL IDENTITY(1,1),
         Familie nvarchar (50),
         PRIMARY KEY(Pk_Fam_ID))
; --/CREATE TABLE "T_Pflanzenfamilie"


--Erstelle Tabelle "T_Naehrstoffe"
--Erstelle "PRIMARY KEY" auf Pk_Naehr_ID
USE My_Plantz
CREATE TABLE
    T_Naehrstoffe
        (Pk_Naehr_ID int NOT NULL IDENTITY(1,1),
         Naehrstoff nvarchar (50),
         Naehrstoffgruppe nvarchar (50),
         PRIMARY KEY(Pk_Naehr_ID))
; --/CREATE TABLE "T_Naehrstoffe"


--#TABELLEN_OHNE_FREMDSCHLÜSSEL ! ENDE / ENDE !8

Code:
USE    My_Plantz


--#SKRIPT: Erstellen der Haupt- bzw. "Schlüssel"-tabellen.


--#TABELLEN_MIT_FREMDSCHLÜSSEL ! BEGIN / BEGIN !



--Erstelle Tabelle "T_Pflanzengattungen"
--Erstelle "PRIMARY KEY" auf Pk_Gat_ID
--Erstelle "FOREIGN KEY" Pk_Fam_ID wird Fremdschlüssel als PkF_Fam_ID in "T_Pflanzengattungen"
USE My_Plantz
CREATE TABLE
    T_Pflanzengattungen
        (Pk_Gat_ID int NOT NULL IDENTITY(1,1),
         Gattung nvarchar (50),
         PkF_Fam_ID int,
         PRIMARY KEY(Pk_Gat_ID),
            CONSTRAINT
                c_Foreign_Fam_ID --Pk_Fam_ID <> PkF_Fam_ID
                FOREIGN KEY(PkF_Fam_ID)
                REFERENCES T_Pflanzenfamilien(Pk_Fam_ID))
; --/CREATE TABLE "T_Pflanzengattungen"


--Erstelle Tabelle "T_Pflanzenarten"
--Erstelle "PRIMARY KEY" auf Pk_Art_ID
--Erstelle "FOREIGN KEY" Pk_Gat_ID wird Fremdschlüssel als PkF_Gat_ID in "T_Pflanzenart"
--Erstelle "FOREIGN KEY" Pk_Fam_ID wird Fremdschlüssel als PkF_Fam_ID in "T_Pflanzenart"
USE My_Plantz
CREATE TABLE
    T_Pflanzenarten
        (Pk_Art_ID int NOT NULL IDENTITY(1,1),
         Art nvarchar (50),
         PkF_Gat_ID int, --Von: Pflanzengattungen PRIMARY KEY
         PRIMARY KEY(Pk_Art_ID),
            CONSTRAINT
                c_Foreign_Gat_ID --Pk_Gat_ID <> PkF_Gat_ID
                FOREIGN KEY(PkF_Gat_ID)
                REFERENCES T_Pflanzengattungen(Pk_Gat_ID))
; --/CREATE TABLE "T_Pflanzengattung"


--Erstelle Tabelle "T_Naehrstoffbedarf"
--Erstelle "PRIMARY KEY" auf Pk_Naehrbedarf_ID
--Erstelle "FOREIGN KEY" Pk_Art_ID wird Fremdschlüssel als PkF_Art_ID in "T_Naehrstoffbedarf"
--Erstelle "FOREIGN KEY" Pk_Naehr_ID wird Fremdschlüssel als PkF_Naehr_ID in "T_Naehrstoffbedarf"
USE My_Plantz
CREATE TABLE
    T_Naehrstoffbedarf
        (Pk_Naehrbedarf_ID int NOT NULL IDENTITY(1,1),
         PkF_Art_ID int,
         PkF_Naehr_ID int,
         PRIMARY KEY(Pk_Naehrbedarf_ID),
            CONSTRAINT
                c_Foreign_Art_ID
                FOREIGN KEY(PkF_Art_ID)
                REFERENCES T_Pflanzenarten(Pk_Art_ID),
            CONSTRAINT
                c_Foreign_Naehr_ID
                FOREIGN KEY(PkF_Naehr_ID)
                REFERENCES T_Naehrstoffe(Pk_Naehr_ID))
; --/CREATE TABLE "T_Pflanzengattung"
 
Code:
--#SKRIPT: Einfügen der Tabelleninhalte.



-- Füge Inhalt "T_Naehrstoffe" hinzu
USE My_Plantz
INSERT INTO
T_Naehrstoffe(Naehrstoff, Naehrstoffgruppe)
    VALUES
    ('Stickstoff', 'beweglich'),
    ('Phosphor', 'beweglich'),
    ('Kalium', 'beweglich'),
    ('Mangesium', 'beweglich'),
    ('Zink', 'beweglich'),
    ('Eisen', 'unbeweglich'),
    ('Kalzium', 'unbeweglich'),
    ('Schwefel', 'unbeweglich'),
    ('Mangan', 'unbeweglich'),
    ('Bor', 'unbeweglich'),
    ('Kupfer', 'unbeweglich'),
    ('Molybdän', 'unbeweglich'),
    ('Chlor', 'unbeweglich'),
    ('Cobalt', 'unbeweglich'),
    ('Silicium', 'unbeweglich'),
    ('Schwefel', 'unbeweglich')
;--/INSERT INTO


-- Füge Inhalt "T_Pflanzenfamilien" hinzu
USE My_Plantz
INSERT INTO
T_Pflanzenfamilien(Familie)
    VALUES
    ('Nachtschattengewaechse'),
    ('Huelsenfruechtler'),
    ('Lippenbluetler'),
    ('Kreuzbluetler'),
    ('Korbbluetler'),
    ('Doldenbluetler'),
    ('Rosengewaechse'),
    ('Kuerbisgewaechse'),
    ('Kapuzinerkressengewaechse'),
    ('Nachtschattenartige'),
    ('Amaryllisgewaechse'),
    ('Suessgraeser'),
    ('Fuchsschwanzgewaechse')
;--/INSERT INTO



-- Füge Inhalt "T_Pflanzengattungen" hinzu
USE My_Plantz
INSERT INTO
T_Pflanzengattungen(Gattung, PkF_Fam_ID)
    VALUES
    ('Nachtschatten', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Nachtschattengewaechse')),
    ('Phaseolus', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Huelsenfruechtler')),
    ('Bohnenkraueter', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Lippenbluetler')),
    ('Kohl', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kreuzbluetler')),
    ('Asternartige', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Korbbluetler')),
    ('Anethum', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Doldenbluetler')),
    ('Erbsen', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Huelsenfruechtler')),
    ('Erdbeeren', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Rosengewaechse')),
    ('Foeniculum', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Doldenbluetler')),
    ('Gurken', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kuerbisgewaechse')),
    ('Kapuzinerkressen', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kapuzinerkressengewaechse')),
    ('Nachtschatten', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Nachtschattenartige')),
    ('Lauch', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Amaryllisgewaechse')),
    ('Kreuzbluetenartige', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kreuzbluetler')),
    ('Lattiche', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Korbbluetler')),
    ('Lauch', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Amaryllisgewaechse')),
    ('Zea', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Suessgraeser')),
    ('Rueben', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Fuchsschwanzgewaechse')),
    ('Moehren', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Doldenbluetler')),
    ('Paprikas', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Nachtschattengewaechse')),
    ('Pastinaken', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Doldenbluetler')),
    ('Minzen', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Lippenbluetler')), 
    ('Rettiche', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kreuzbluetler')),
    ('Schwarzwurzeln', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Korbbluetler')),
    ('Sellerie', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Doldenbluetler')),
    ('Spinat', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Fuchsschwanzgewaechse')),
    ('Kuerbisse', (SELECT Pk_Fam_ID FROM T_Pflanzenfamilien WHERE Familie='Kuerbisgewaechse'))
;--/INSERT INTO


-- Füge Inhalt "T_Pflanzenarten" hinzu
USE My_Plantz
INSERT INTO
T_Pflanzenarten(Art, PkF_Gat_ID)
    VALUES
    ('Aubergine', (SELECT MAX(Pk_Gat_ID)FROM T_Pflanzengattungen WHERE Gattung='Nachtschatten')),
    ('Bohne', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Phaseolus')),
    ('Bohnenkraut', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Bohnenkraueter')),
    ('Blumenkohl', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kohl')),
    ('Brokkoli', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kohl')),
    ('Chicorée', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Asternartige')),
    ('Dill', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Anethum')),
    ('Erbse', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Erbsen')),
    ('Erdbeere', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Erdbeeren')),
    ('Fenchel', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Foeniculum')),
    ('Gurke', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Gurken')),
    ('Kapuzinerkresse', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kapuzinerkressen')),
    ('Kartoffel', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Nachtschatten')),
    ('Knoblauch', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lauch')),
    ('Kohl', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kreuzbluetenartige')),
    ('Kohlrabi', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kohl')),
    ('Kopfsalat', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lattiche')),
    ('Lauch', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lauch')),
    ('Porree', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lauch')),
    ('Mais', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Zea')),
    ('Mangold', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Rueben')),
    ('Moehre', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Moehren')),
    ('Paprika', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Paprikas')),
    ('Pastinake', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Pastinaken')),
    ('Pfefferminze', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Minzen')),
    ('Pfluecksalat', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lattiche')),
    ('Radieschen', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Rettiche')),
    ('Rettich', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Rettiche')),
    ('Rote Beete', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Rueben')),
    ('Schwarzwurzeln', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Schwarzwurzeln')),
    ('Sellerie', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Sellerie')),
    ('Spinat', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Spinat')),
    ('Tomate', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Nachtschatten')),
    ('Zucchini', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Kuerbisse')),
    ('Zwiebel', (SELECT MAX(Pk_Gat_ID) FROM T_Pflanzengattungen WHERE Gattung='Lauch'))
;--/INSERT INTO



USE My_Plantz
SELECT T_PGat.Gattung, T_PNaehrbedarf.PkF_Naehr_ID
FROM (
T_Pflanzengattungen AS T_PGat
INNER JOIN --# 1. Join
T_Pflanzenarten AS T_PArten
ON T_PGat.Pk_Gat_ID = T_PArten.PkF_Gat_ID
)
INNER JOIN --# 2. Join
T_Naehrstoffbedarf AS T_PNaehrbedarf
ON T_PArten.Pk_Art_ID = T_PNaehrbedarf.PkF_Art_ID
ORDER BY T_PGat.Gattung; [/CODE]


So tada :) Was sagt ihr dazu? Eine Bemerkung: 1 Familie hat mehrere Gattungen und 1 Gattung hat meherere Arten.

Am Schluss bei dem letzten Skript möchte ich 4 Tabellen joinen.
In meiner Tabelle Nährstoffbedarf soll die Art zb "Radieschen" und die dazugehörigen Nährstoffe die sie brauchen zum wachsen angezeigt. Desweiteren die dazugehörige Gattung und deren Familie.

Aber wenn ihr diesen Join ausführt steht in der Tabelle ausser den Tabellenkopefen (und dazu noch die falschen^^) nichts. Was mache ich an dieser Stelle falsch?

Was ist bei diesem Join falsch?

Gruß
 
Werbung:
Zurück
Oben