This commit is contained in:
Max W. 2025-01-31 13:05:11 +01:00
parent 0eae775942
commit 5497ef422d
8 changed files with 117 additions and 1 deletions

View File

@ -15,3 +15,42 @@
`SELECT * FROM table WHERE age BETWEEN 20 AND 30` Gibt alle Werte zurück, wo das Alter zwischen 20 und 30 liegt. (Inklusive 20 und 30)
`LIMIT offset, count` Limitiert die Anzahl der Zeilen, die zurückgegeben werden. Offset gibt an, ab welcher Zeile die Daten zurückgegeben werden sollen. Bspw. `LIMIT 5, 10` gibt die Zeilen 6 bis 15 zurück.
`ORDER BY column DESC` Sortiert die Daten absteigend. Standardverhalten ist ASC.
`GROUP BY column LIMIT 40, 5` Gruppiert die Daten nach einer Spalte und gibt nur 5 Zeilen zurück, beginnend bei Zeile 40. **Limit sollte immer mit ORDER BY verwenden**
`SELECT firstname as fname, lastname as lname FROM table` Benennt die Spalten um.
- `SELECT COUNT(*)`
Zählt die Anzahl der Zeilen in einer Tabelle.
- `SELECT MIN(spalte)`
Gibt den kleinsten Wert aus der angegebenen Spalte zurück.
- `SELECT MAX(spalte)`
Gibt den größten Wert aus der angegebenen Spalte zurück.
- `SELECT AVG(spalte)`
Berechnet den Durchschnittswert der Werte in der angegebenen Spalte.
- `SELECT SUM(spalte)`
Addiert alle Werte in der angegebenen Spalte und gibt die Summe zurück.
- `SELECT UPPER(spalte)`
Wandelt alle Zeichen in der angegebenen Spalte in Großbuchstaben um.
- `SELECT LOWER(spalte)`
Wandelt alle Zeichen in der angegebenen Spalte in Kleinbuchstaben um.
- `SELECT LENGTH(spalte)`
Gibt die Länge (Anzahl der Zeichen) des Wertes in der angegebenen Spalte zurück.
- `SELECT SUBSTR(spalte, start, länge)`
Extrahiert einen Teilstring aus der angegebenen Spalte, beginnend bei `start` und mit einer optionalen Länge von `länge`.
- `SELECT CONCAT(spalte1, spalte2, ...)`
Verknüpft mehrere Spalten oder Zeichenketten miteinander und gibt die kombinierte Zeichenkette zurück.
- `REPLACE(spalte, 'suchen', 'ersetzen')`
Ersetzt alle Vorkommen des Suchstrings durch den Ersetzungsstring in der angegebenen Spalte.

View File

@ -0,0 +1,38 @@
select firstname as fn
from customers;
select min(age) as min_age, max(age) as max_age, avg(age) as avg_age
from customers;
select concat(customers.firstname, ' ', lastname) as full_name
from customers;
select upper(concat(customers.firstname, ' ', lastname)) as full_name
from customers;
select length(customers.firstname) as fn_length
from customers;
select concat(customers.firstname, ' ', lastname) as full_name
from customers
where length(firstname) = 4; # performance is not perfect
# [Aufgabe]: SELECT, LIMIT, ORDER BY
# Welcher Vorname kam insgesamt (d.h. für ein beliebiges Geschlecht in einem beliebigen Jahr) am häufigsten vor?
select * from baby_names order by count desc limit 1; # Linda
select * from baby_names where gender = 'm' and year = 2000 order by count desc limit 1;
select min(baby_names.year) from baby_names; # 1880
select * from baby_names order by year limit 1; # 1880
select count(distinct name) from baby_names where length(name) = 5; # 1590
select count(distinct name) from baby_names where name like '_____'; # 1590
select sum(count) from baby_names where year = 2000; # 3320671
select distinct baby_names.name from baby_names order by baby_names.name asc limit 10, 10; # Aarna
select categories.id, categories.title, replace(title, 'und', '&') from categories;

View File

@ -97,3 +97,10 @@ select count(*)
from baby_names
where year % 10 = 0
and year between 1900 and 1999; # 15307
select * from baby_names where name like 'Alex%' order by name desc;
select * from baby_names limit 50, 5; # offset, limit
select customers.firstname, customers.lastname, age from customers order by age desc, firstname;
select customers.firstname, customers.lastname, age from customers order by age desc, firstname limit 10;

View File

@ -0,0 +1 @@
delete from categories where id = 30;

View File

@ -0,0 +1,9 @@
insert into categories (title)
values ('Fremdsprachige Bücher'),
('eBooks'),
('Märchen');
delete
from categories
where title in ('Märchen', 'eBooks', 'Fremdsprachige Bücher');

View File

@ -0,0 +1,6 @@
create table if not exists stores
(
street varchar(100),
description text
)

View File

@ -0,0 +1,7 @@
update categories set title = '
Fremdsprachige Bücher' where title = 'Fremdsprachige Bücher';
update categories set title = 'Kinder- & Jugendbücher' where title = 'Kinder- und Jugendbücher';
update categories set title = 'Ernährung & Diät' where id = 8;
update categories set title = replace(title, 'und', '&');

9
uebung/crud-1.sql Normal file
View File

@ -0,0 +1,9 @@
# [Aufgabe]: Daten verwalten
insert into locations (title, address) values ('Hauptbahnhof', 'Hauptbahnhof 1, 60329 Frankfurt am Main');
update locations set address = replace(address, 'Domkloster 1', 'Domkloster 4') where title = 'Buchhandlung Dom';
delete from locations where title = 'Buchhandlung Alexanderplatz';
insert into locations (title, address) values ('Buchhandlung Flughafen BER', 'Melli-Beese-Ring 1, 12529 Schönefeld, Deutschland');