SQL in the shell

Relationenalgebra auf der Kommandozeile

Relation

id name stadt
1 Mueller GmbH Berlin
2 Schmidt AG Hamburg
  • Attribut: Spalte (id, name, stadt)
  • Tupel: Zeile (1, Mueller GmbH, Berlin)

Operationen

  • Projektion
  • Selektion
  • Vereinigung
  • Differenz
  • Umbenennung
  • Kartesisches Produkt

Projektion

ü

Selektion

SELECT * FROM Customers
    WHERE Country LIKE '%ada%';

Vereinigung

SELECT * FROM Customers_A
    UNION
        SELECT * FROM Customers_B;

Differenz

SELECT * FROM Customers_A
    EXCEPT
        SELECT * FROM Customers_B;

Umbenennung

awk -F ',' '{print $2, $1}' R

Kartesisches Produkt

SELECT * FROM R, S;

Join?

Kartesisches Produkt
Selektion
Projektion

Revue

  • cat: Vereinigung
  • grep: Selektion
  • awk: Selektion, Projektion, Umbenennung
  • comm: Differenz

Unix Tools

cat · sed · grep · cut · awk · join · comm · diff · uniq · sort

"Do one thing and do it well"

Inspiration

"Relational algebra can turn any
shell into a respectable database."

Matt Might - SQL in the Shell

Danke!

Martin Funk · @eigenfunk

github.com/eigenfunk/sql-in-the-shell