-- Først opretter vi databasen CREATE DATABASE projekt_database; -- og så benytter vi den: USE projekt_database; -- Så oprettes de forskellige tabeller: DROP TABLE if exists customer; -- Dette statement gør, at databasen kontrollerer om der allerede findes en tabel med navnet 'customer' - og sletter den, hvis den findes. CREATE TABLE customer( cno INT(5) PRIMARY KEY AUTO_INCREMENT, cfirstname VARCHAR(50) NOT NULL, clastname VARCHAR(50) NOT NULL, street VARCHAR(50) NOT NULL, zip INT(4) NOT NULL, email VARCHAR(50) NOT NULL -- CREATE TABLE = opretter tabellen - den får navnet customer -- herefter følger en linje pr. kollonne i tabellen. Først er navnet på kollonen, derefter hvilken type indhold, der skal være i kolonnen. -- AUTO_INCREMENT betyder, at databasen selv giver tabellen et unikt tal-id, som starter ved 1 og fortsætter opdad. -- INT er tal, VARCHAR er variable characters - altså bogstaver og tal, som man lyster. -- NOT NULL betyder, at der skal stå noget i den pågældende kolonne - ellers kommer der en fejlmelding. DROP TABLE if exists zipcodes; CREATE TABLE zipcodes( zip INT(4) PRIMARY KEY, city VARCHAR(50) DROP TABLE if exists products; CREATE TABLE products( pno INT(5) PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(100) NOT NULL, price INT(10) NOT NULL, qoh INT (10) NOT NULL, catno INT(2) NOT NULL, couno INT(3) NOT NULL, prino INT(2) NOT NULL DROP TABLE if exists category; CREATE TABLE category( catno INT(2) PRIMARY KEY, catname VARCHAR(50) DROP TABLE if exists country; CREATE TABLE country(
couno INT(2) PRIMARY KEY, couname VARCHAR(50) DROP TABLE if exists priceclass; CREATE TABLE priceclass( prino INT(2) PRIMARY KEY, priname VARCHAR(50) DROP TABLE if exists orders; CREATE TABLE orders( ono INT(10) PRIMARY KEY, cno INT(10), recieved DATE, shipped DATE DROP TABLE if exists odetails; CREATE TABLE odetails( ono INT(10), pno INT(10), qty INT(10), PRIMARY KEY (ono, pno) -- og der tilføjes værdier i tabellerne: -- For zipcodes: se seperat sql-fil "zipcodes.sql" -- Først en række kunder. Der er auto_increment på cno, og derfor udfyldes dette ikke. VALUES ("Rikke", "Carlsen", "Lyngbyvej 126, st.th", "2100", "rixx@sol.dk"); VALUES ("Camilla", "Poulsen", "Teilstrupvej 6b", "2100", "mail@camilla.dk"); VALUES ("Janne", "Larsen", "Farumvej 12", "3660", "j-l@tdcadsl.dk"); VALUES ("Søren", "Carlsen", "Ådalsparkvej 19, 2.mf.", "2970", "soren@carlsen.dk"); VALUES ("Mattias", "Fuglsang", "Uglevej 10", "2750", "birdie@mail.dk"); VALUES ("Peter", "Sommer", "Sjællandsgade 3", "8000", "peter@sommer.dk"); VALUES ("Morten", "Hansen", "Lykkevej 4", "4300", "morten@mail.dk"); VALUES ("Findus", "Peddersen", "Hullahopvej 15", "5500", "hejhej@hej.dk");
VALUES ("John", "Doe", "Testvej 123", "9000", "test@mail.dk"); VALUES ("Lotte", "Jensen", "Ravnevej 13", "2500", "jajaja@jajaja.dk"); -- Her indsættes en række produkter, som kunderne skal kunne søge på og bestille. Der er auto_increment på pno, og derfor udfyldes dette ikke. VALUES ("Castello di Verrazzano", "300", "215", "1", "5", "3"); VALUES ("C de Camille", "79", "124", "1", "1", "1"); VALUES ("Ceravolo Sangiovese", "109", "353", "1", "2", "2"); VALUES ("Schubert Syrah", "349", "22", "1", "6", "3"); VALUES ("Heritage Zinfandel", "149", "256", "1", "9", "2"); VALUES ("Ceravolo Pinot Grigio", "109", "67", "2", "1", "2"); VALUES ("Chardonnay Reserva", "85", "123", "2", "3", "1"); VALUES ("PradoRey Verdejo Bianco", "95", "877", "2", "7", "1"); VALUES ("Alsace - Pinot Gris - Vendanges Tardives", "229", "24", "2", "4", "3"); VALUES ("Riesling Spätlese Klüsserather Bruderschaft", "139", "543", "2", "8", "2"); VALUES ("Champagne Blanc de Blancs Brut", "649", "252", "3", "4", "4"); VALUES ("Champagne Carte Blanche, Brut", "2399", "432", "3", "4", "5"); VALUES ("Champagne ELLNER Cuvèe Rèserve Brut Magnum", "10000", "43", "3", "4", "6"); VALUES ("Recioto Spumante", "229", "65", "4", "5", "3"); VALUES ("Late Harvest Shiraz", "149", "276", "4", "1", "2"); VALUES ("Casal Mendes Rosè", "69", "87", "5", "6", "1"); VALUES ("Rosé d'anjou", "75", "95", "5", "4", "1"); VALUES ("PradoRey Rose", "119", "421", "5", "7", "2"); VALUES ("Ariel Rouge Alkoholfri vin", "55", "146", "6", "9", "1"); VALUES ("1975 Colheita Port Royal Oporto", "599", "217", "7", "6",
"4"); -- Så tilføjes de forskellige kategorier, vinene skal indeles i, og hvis kriterier, kunden skal kunne søge på: VALUES ("1", "Rødvin"); VALUES ("2", "Hvidvin"); VALUES ("3", "Champagne"); VALUES ("4", "Dessertvin"); VALUES ("5", "Rosé"); VALUES ("6", "Alkoholfri vin"); VALUES ("7", "Hedvin"); -- Så tilføjes de forskellige lande vinene kommer fra, og hvis kriterier, kunden skal kunne søge på: VALUES ("1", "Argentina"); VALUES ("2", "Australien"); VALUES ("3", "Chile"); VALUES ("4", "Frankrig"); VALUES ("5", "Italien"); VALUES ("6", "Portugal"); VALUES ("7", "Spanien"); VALUES ("8", "Tyskland"); VALUES ("9", "USA"); -- Så tilføjes de forskellige prisklasser, vinene skal indeles i, og hvis kriterier, kunden skal kunne søge på: VALUES ("1", "0-99 kr."); VALUES ("2", "100-199 kr."); VALUES ("3", "200-499 kr."); VALUES ("4", "500-999 kr."); VALUES ("5", "1000-4999 kr."); VALUES ("6", "5000< kr.");
-- Her følger så et par eksempler på ordrer, som er afgivet manuelt: VALUES (1, 2, '2014-09-01', '2014-09-08'); VALUES (1, 1, 6); VALUES (1, 3, 4); VALUES (1, 8, 6); VALUES (2, 3, '2014-09-05', '2014-09-10'); VALUES (2, 10, 12); VALUES (2, 5, 6); VALUES (2, 16, 6); VALUES (3, 4, '2014-09-05', '2014-09-10'); VALUES (3, 14, 6);