Zum Inhalt

Working like a Pro

Note

Version 1 15.01.2025 10:00

so kann man die Tabelle erstellen plus die Daten einfügen:

USE winemag;


CREATE TABLE IF NOT EXISTS winemag.tastedata (
    id INT PRIMARY KEY,
    country TEXT,
    description1 TEXT,
    designation TEXT,
    points INT,
    price DECIMAL(10,2),
    province TEXT,
    region_1 TEXT,
    region_2 TEXT,
    taster_name TEXT,
    taster_twitter_handle TEXT,
    title TEXT,
    variety TEXT,
    winery TEXT
);


-- unten sehen sie wie man die Daten mit Code in die Datenbank einführt    

LOAD DATA LOCAL INFILE
'C:/sql/Bulkimport/winemag_130k.csv'  -- Pfad, auf ihr System anpassen
INTO TABLE winemag.tastedata -- Ziel
FIELDS TERMINATED BY ',' -- Einstellung Trennzeichen
ENCLOSED BY '"' -- Zeichenketten können in Anführungszeichen stecken
LINES TERMINATED BY '\n' -- Einstellung für üblichen Zeilentrenner
IGNORE 1 LINES; -- Erste Zeile enthält nur Attributnamen, keine Werte

Hier der abgeschlossene Import:

unten beim Bild oben sehen sie die Warnings die dadurch entstehen das bei dem Attribut price bei einigen Einträgen der Preis fehlt

und hier die Tabellen die erstellt wurden:

BBBB

Bubs’ Bigtime Baby Booties

Kunden (customers: first name, last name, email)

Mitarbeiter (employees first name, last name, start date, position held)

Produkte (products)

Einkäufe (purchases)

Kundenkunden_id : INT [PK]vorname : VARCHAR(50)nachname : VARCHAR(50)email : VARCHAR(100)telefon : VARCHAR(15)adresse : TEXTMitarbeitermitarbeiter_id : INT [PK]vorname : VARCHAR(50)nachname : VARCHAR(50)einstellungsdatum : DATEposition : VARCHAR(50)abteilung : VARCHAR(50)Produkteprodukt_id : INT [PK]produktname : VARCHAR(100)preis : DECIMAL(10,2)lagerbestand : INTEinkäufeeinkauf_id : INT [PK]kunden_id : INT [FK -> customers.kunden_id]produkt_id : INT [FK -> products.produkt_id]mitarbeiter_id : INT [FK -> employees.mitarbeiter_id]kaufdatum : DATEmenge : INTgesamtpreis : DECIMAL(10,2)tätigt(1:n)bearbeitet(1:1)ist enthalten in(1:n)
Kundenkunden_id : INT [PK]vorname : VARCHAR(50)nachname : VARCHAR(50)email : VARCHAR(100)telefon : VARCHAR(15)adresse : TEXTMitarbeitermitarbeiter_id : INT [PK]vorname : VARCHAR(50)nachname : VARCHAR(50)einstellungsdatum : DATEposition : VARCHAR(50)abteilung : VARCHAR(50)Produkteprodukt_id : INT [PK]produktname : VARCHAR(100)preis : DECIMAL(10,2)lagerbestand : INTEinkäufeeinkauf_id : INT [PK]kunden_id : INT [FK -> customers.kunden_id]produkt_id : INT [FK -> products.produkt_id]mitarbeiter_id : INT [FK -> employees.mitarbeiter_id]kaufdatum : DATEmenge : INTgesamtpreis : DECIMAL(10,2)tätigt(1:n)bearbeitet(1:1)ist enthalten in(1:n)

dummy daten einfügen:

-- Datenbank auswählen
USE BBB;

-- Dummy-Daten für Kunden
INSERT INTO Kunden (kunden_id, vorname, nachname, email, telefon, adresse) VALUES
(1, 'Max', 'Mustermann', 'max.mustermann@example.com', '0123456789', 'Musterstraße 1, 8000 Zürich'),
(2, 'Anna', 'Meier', 'anna.meier@example.com', '0987654321', 'Bahnhofstraße 5, 9000 St. Gallen'),
(3, 'Lukas', 'Schneider', 'lukas.schneider@example.com', '0567891234', 'Seestraße 12, 4057 Basel'),
(4, 'Laura', 'Huber', 'laura.huber@example.com', '0441234567', 'Hauptstraße 23, 3000 Bern'),
(5, 'Peter', 'Fischer', 'peter.fischer@example.com', '0789012345', 'Ringstraße 7, 1000 Lausanne');

-- Dummy-Daten für Mitarbeiter
INSERT INTO Mitarbeiter (mitarbeiter_id, vorname, nachname, einstellungsdatum, position, abteilung) VALUES
(1, 'Sandra', 'Keller', '2020-01-15', 'Verkäuferin', 'Vertrieb'),
(2, 'Michael', 'Maurer', '2019-07-01', 'Lagerist', 'Logistik'),
(3, 'Claudia', 'Baumann', '2021-05-20', 'Kundenberaterin', 'Kundenservice'),
(4, 'Thomas', 'Weber', '2018-10-10', 'Filialleiter', 'Management'),
(5, 'Julia', 'Zimmermann', '2022-03-12', 'Aushilfe', 'Vertrieb');

-- Dummy-Daten für Produkte
INSERT INTO Produkte (produkt_id, produktname, preis, lagerbestand) VALUES
(1, 'Laptop', 999.99, 50),
(2, 'Smartphone', 699.99, 100),
(3, 'Kopfhörer', 49.99, 200),
(4, 'Monitor', 199.99, 30),
(5, 'Tastatur', 29.99, 150);

-- Dummy-Daten für Einkäufe
INSERT INTO Einkäufe (einkauf_id, kunden_id, produkt_id, mitarbeiter_id, kaufdatum, menge, gesamtpreis) VALUES
(1, 1, 1, 1, '2023-01-10', 1, 999.99),
(2, 2, 2, 3, '2023-02-15', 2, 1399.98),
(3, 3, 3, 2, '2023-03-20', 1, 49.99),
(4, 4, 4, 4, '2023-04-25', 2, 399.98),
(5, 5, 5, 5, '2023-05-30', 3, 89.97);

benutzerrollen erstellen:

CREATE USER 'Tom'@'localhost' IDENTIFIED BY 'passwort1';
GRANT ALL PRIVILEGES ON *.* TO 'Tom'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;


CREATE USER 'Philipp'@'localhost' IDENTIFIED BY 'passwort2';
GRANT SELECT ON bubsbooties.* TO 'Philipp'@'localhost';
FLUSH PRIVILEGES;

wir haben die Namen ein bisschen geändert