Mariadb Workshop: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 97: Zeile 97:
 
Löscht ein Auto anhand der ID.
 
Löscht ein Auto anhand der ID.
 
*delete from autos where id = 1;
 
*delete from autos where id = 1;
 +
= Daten aktualisieren = 
 +
Ändert den Preis eines Autos mit einer bestimmten ID. 
 +
*update autos set preis = 27999.99 where id = 2; 
 +
 +
Ändert die Farbe aller BMWs auf "blau". 
 +
*update autos set farbe = 'blau' where marke = 'BMW'; 
 +
 +
= Aggregationen und Gruppen = 
 +
Zeigt die durchschnittlichen Preise pro Marke. 
 +
*select marke, avg(preis) from autos group by marke; 
 +
 +
Zeigt die Anzahl der Autos pro Marke. 
 +
*select marke, count(*) from autos group by marke; 
 +
 +
= Neue Tabelle Kunden anlegen = 
 +
Fügt eine Tabelle für Kunden hinzu. 
 +
*create table kunden ( 
 +
id int auto_increment primary key, 
 +
name varchar(100), 
 +
telefon varchar(20), 
 +
email varchar(100) 
 +
); 
 +
 +
= Joins: Autos mit Kunden verknüpfen = 
 +
Fügt eine Spalte für den Fahrzeugbesitzer hinzu. 
 +
*alter table autos add column kunde_id int; 
 +
=Zeigt alle Autos mit den dazugehörigen Kunden=
 +
*select autos.marke, autos.modell, kunden.name from autos left join kunden on autos.kunde_id = kunden.id; 
 +
= Benutzer anlegen und Rechte vergeben = 
 +
Erstellt einen neuen Benutzer für den Zugriff. 
 +
*create user 'autouser'@'localhost' identified by 'Passwort123'; 
 +
 +
Gibt Lesezugriff auf die Tabelle autos. 
 +
*grant select on fahrzeuge.autos to 'autouser'@'localhost'; 
 +
 +
= Indizes für schnellere Abfragen = 
 +
Erstellt einen Index auf der Spalte "marke". 
 +
*create index idx_marke on autos (marke); 
 +
 +
= Backup und Wiederherstellung = 
 +
Sichert die Datenbank in eine Datei. 
 +
*mysqldump -u root -p fahrzeuge > fahrzeuge.sql; 
 +
 +
Stellt das Backup wieder her. 
 +
*mysql -u root -p fahrzeuge < fahrzeuge.sql; 
 +
 +
Was möchtest du als nächstes vertiefen?

Version vom 20. März 2025, 19:49 Uhr

MariaDB Installation

MariaDB ist eine freie relationale Datenbank. Die Installation erfolgt über das Paketmanagement. Der Client ermöglicht die Verbindung zur Datenbank.

  • apt update && apt install mariadb-server mariadb-client

MariaDB Einrichtung

Nach der Installation sollte MariaDB initial konfiguriert werden, um die Sicherheit zu erhöhen. (Default ist ok, Passwort setzen)

  • mysql_secure_installation

Mit dem MariaDB-Client verbinden

Nach der Installation kann man sich mit dem Client zur Datenbank verbinden.

  • mysql -u root -p

Anzeigen der Datenbanken

Zeigt alle vorhandenen Datenbanken an.

  • show databases;

Wechseln in eine Datenbank

Wechselt in die gewünschte Datenbank.

  • use mysql;

Anzeigen der Tabellen einer Datenbank

Zeigt alle Tabellen der aktuellen Datenbank an.

  • show tables;

Anzeigen aller Werte einer Tabelle

Zeigt alle Werte einer Tabelle an.

  • select * from user;

Verbindung zur Datenbank beenden

Beendet die aktuelle Sitzung und verlässt den MariaDB-Client.

  • exit;

Mit Passwort in der Befehlszeile verbinden

Man kann das Passwort direkt angeben, aber das ist unsicher.

  • mysql -u root -p123Start

Datenbank Fahrzeuge anlegen

Erstellt eine neue Datenbank für Fahrzeuge.

  • create database fahrzeuge;

Tabelle Autos anlegen

Erstellt eine Tabelle für Autos mit sinnvollen Feldern.

  • use fahrzeuge;
  • create table autos (
id int auto_increment primary key,
marke varchar(50),
modell varchar(50),
baujahr int,
farbe varchar(30),
preis decimal(10,2)
);

Beispieldaten in die Tabelle Autos einfügen

Fügt verschiedene Autos in die Tabelle ein.

  • insert into autos (marke, modell, baujahr, farbe, preis) values
('Volkswagen', 'Golf', 2018, 'blau', 15999.99),
('BMW', '3er', 2020, 'schwarz', 27999.50),
('Mercedes', 'C-Klasse', 2019, 'silber', 31999.00),
('Audi', 'A4', 2021, 'weiß', 34999.99),
('Ford', 'Focus', 2017, 'rot', 13999.00),
('Opel', 'Astra', 2016, 'grau', 8999.50),
('Toyota', 'Corolla', 2022, 'grün', 24999.99),
('Honda', 'Civic', 2020, 'blau', 22999.00),
('Peugeot', '308', 2019, 'weiß', 18999.99),
('Renault', 'Megane', 2018, 'schwarz', 17999.50);

Alle Autos anzeigen

Zeigt alle Autos aus der Tabelle.

  • select * from autos;

Bestimmte Spalten anzeigen

Zeigt nur Marke, Modell und Preis.

  • select marke, modell, preis from autos;

Autos nach Preis sortieren

Sortiert die Autos nach Preis aufsteigend.

  • select * from autos order by preis asc;

Nur Autos einer bestimmten Marke anzeigen

Zeigt nur Autos von BMW.

  • select * from autos where marke = 'BMW';

Autos, die teurer als 20.000€ sind

Zeigt nur Autos mit einem Preis über 20.000€.

  • select * from autos where preis > 20000;

Autos, die zwischen 2018 und 2021 gebaut wurden

Zeigt nur Autos aus den Baujahren 2018 bis 2021.

  • select * from autos where baujahr between 2018 and 2021;

Anzahl der Autos in der Tabelle

Zählt, wie viele Autos gespeichert sind.

  • select count(*) from autos;

Durchschnittlicher Preis aller Autos

Berechnet den Durchschnittspreis.

  • select avg(preis) from autos;

Teuerstes Auto anzeigen

Zeigt das Auto mit dem höchsten Preis.

  • select * from autos order by preis desc limit 1;

Günstigstes Auto anzeigen

Zeigt das Auto mit dem niedrigsten Preis.

  • select * from autos order by preis asc limit 1;

Zwei neue Autos hinzufügen

Fügt zwei weitere Autos in die Tabelle ein.

  • insert into autos (marke, modell, baujahr, farbe, preis) values
('Skoda', 'Octavia', 2021, 'blau', 25999.99),
('Mazda', 'CX-5', 2022, 'rot', 31999.50);

Ein Auto löschen

Löscht ein Auto anhand der ID.

  • delete from autos where id = 1;

Daten aktualisieren

Ändert den Preis eines Autos mit einer bestimmten ID.

  • update autos set preis = 27999.99 where id = 2;

Ändert die Farbe aller BMWs auf "blau".

  • update autos set farbe = 'blau' where marke = 'BMW';

Aggregationen und Gruppen

Zeigt die durchschnittlichen Preise pro Marke.

  • select marke, avg(preis) from autos group by marke;

Zeigt die Anzahl der Autos pro Marke.

  • select marke, count(*) from autos group by marke;

Neue Tabelle Kunden anlegen

Fügt eine Tabelle für Kunden hinzu.

  • create table kunden (
id int auto_increment primary key,  
name varchar(100),  
telefon varchar(20),  
email varchar(100)  

);

Joins: Autos mit Kunden verknüpfen

Fügt eine Spalte für den Fahrzeugbesitzer hinzu.

  • alter table autos add column kunde_id int;

Zeigt alle Autos mit den dazugehörigen Kunden

  • select autos.marke, autos.modell, kunden.name from autos left join kunden on autos.kunde_id = kunden.id;

Benutzer anlegen und Rechte vergeben

Erstellt einen neuen Benutzer für den Zugriff.

  • create user 'autouser'@'localhost' identified by 'Passwort123';

Gibt Lesezugriff auf die Tabelle autos.

  • grant select on fahrzeuge.autos to 'autouser'@'localhost';

Indizes für schnellere Abfragen

Erstellt einen Index auf der Spalte "marke".

  • create index idx_marke on autos (marke);

Backup und Wiederherstellung

Sichert die Datenbank in eine Datei.

  • mysqldump -u root -p fahrzeuge > fahrzeuge.sql;

Stellt das Backup wieder her.

  • mysql -u root -p fahrzeuge < fahrzeuge.sql;

Was möchtest du als nächstes vertiefen?