diff --git a/daten-abfragen/notes.md b/daten-abfragen/notes.md index bede75e..26f7873 100644 --- a/daten-abfragen/notes.md +++ b/daten-abfragen/notes.md @@ -1,10 +1,17 @@ # Daten abfragen 1. Bei Suche nach Daten, die Daten immer in `` ` `` Quotes setzen. Sonst werden die Spalten miteinander verglichen. - 2. MySQL ignoriert Groß- und Kleinschreibung und Ä = A, Ö = O, Ü = U. +3. Wenn auf distinct mehrere Spalten folgen, dann wird die Kombination der Spalten als einzigartig betrachtet. +4. `WHERE firstname = 'Anne' OR firstname = 'Peter'` kann durch `WHERE firstname IN ('Anne', 'Peter')` ersetzt werden. +5. `WHERE age BETWEEN 20 AND 30` gibt alle Werte zurück, wo das Alter zwischen 20 und 30 liegt. # Syntax `SELECT COUNT(*)` Zählt die Anzahl der Zeilen in einer Tabelle. -`SELECT DISTINCT ` Gibt nur einzigartige Werte zurück. \ No newline at end of file +`SELECT DISTINCT ` Gibt nur einzigartige Werte zurück. + +`SELECT * FROM table WHERE column LIKE 'a%'` Gibt alle Werte zurück, die mit 'a' beginnen. + +`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) + diff --git a/daten-abfragen/select-basic-2.sql b/daten-abfragen/select-basic-2.sql new file mode 100644 index 0000000..729eb56 --- /dev/null +++ b/daten-abfragen/select-basic-2.sql @@ -0,0 +1,99 @@ +select * +from customers +where email like '%@gmail.com'; +select * +from customers +where email like '%@web.de'; +select * +from customers +where email like '%@web.de' + or email like '%@gmail.com'; + +select distinct SUBSTRING_INDEX(email, '@', -1) as domain +from customers; +# Nicht im Kurs, aber aus Interesse ausprobiert ---> Selektiert alle verschiedenen E-Mail Domains + +select * +from customers +where firstname like 'M%'; +select * +from customers +where firstname like 'M_____'; + +select firstname, lastname, age +from customers +where age between 20 and 30; + +select * +from customers +where age not between 20 and 30; + +select * +from customers +where firstname in ('Gitta', 'Dana', 'Anne'); + +select count(*) +from customers +where age not between 20 and 30; # 160 + +select count(distinct baby_names.name) +from baby_names +where name like 'Alex%'; # 20 +select distinct baby_names.name +from baby_names +where name like 'Alex%'; + +select distinct baby_names.name +from baby_names +where name like '%m%'; +select count(distinct baby_names.name) +from baby_names +where name like '%m%'; # 1183 + +select * +from baby_names +where year between 1900 and 1999; +select count(*) +from baby_names +where year between 1900 and 1999; # 161668 +select count(*) +from baby_names +where year >= 1900 + and year <= 1999; # 161668 + +select * +from baby_names +where year = 1900 + or year = 1910 + or year = 1920 + or year = 1930 + or year = 1940 + or year = 1950 + or year = 1960 + or year = 1970 + or year = 1980 + or year = 1990; +select count(*) +from baby_names +where year = 1900 + or year = 1910 + or year = 1920 + or year = 1930 + or year = 1940 + or year = 1950 + or year = 1960 + or year = 1970 + or year = 1980 + or year = 1990; # 15307 +select count(*) +from baby_names +where year in (1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990); # 15307 + +select count(*) +from baby_names +where year like '19%0'; # 15307 + +select count(*) +from baby_names +where year % 10 = 0 + and year between 1900 and 1999; # 15307 \ No newline at end of file diff --git a/daten-abfragen/select.sql b/daten-abfragen/select-basic.sql similarity index 79% rename from daten-abfragen/select.sql rename to daten-abfragen/select-basic.sql index e888e41..afdf9ac 100644 --- a/daten-abfragen/select.sql +++ b/daten-abfragen/select-basic.sql @@ -50,6 +50,12 @@ select count(*) from baby_names where gender = 'm'; # 94322 +select `count` +from baby_names +where name = 'Alex' + and year = 2010 + and gender = 'm'; + select count(distinct baby_names.name) from baby_names; # 6809 @@ -64,4 +70,13 @@ select * from baby_names where `count` = 19250; # Sandra -select * from baby_names where gender != 'm' and gender != 'f'; \ No newline at end of file +select * +from baby_names +where gender != 'm' + and gender != 'f'; + +select distinct baby_names.gender +from baby_names; # M, F + +select count(distinct baby_names.name, baby_names.gender) +from baby_names; \ No newline at end of file