Sql

Aus Vokabulabor
Zur Navigation springen Zur Suche springen

Links

Zielsetzung

Einführung in die Datenbanksprache Structured Query Language. Damit kann man Datenbanktabellen erstellen, Daten eintragen, ändern, löschen und abfragen.

Es gibt Standards für SQL, der Kurs formuliert die Beispiele im Dialekt von MariaDB (oder MySql).

Tabellen

Eine Relation, auch Datenbanktabelle genannt, ist ein Menge von Zeilen, die in **gleich viel Spalten** je Zeile unterteilt ist.

Mit Relationen werden Entitäten (materielle und ideelle Dinge, Sachen oder Ideen) mittels Attributen beschrieben. In Relationen können beliebig viele Entitäten gespeichert werden.

Beispiel

Eine Adresse ist eine Entität, die aus den Attributen Name, Vorname, Ort, Postleitzahl, Straße und Hausnummer besteht.

Erstellen einer Relation

create table users (
   id integer primary key auto_increment;
   name varchar(64),
   email varchar(255),
   password varchar(255),
   last_login timestamp
);
  • Konvention: Wir vergeben immer eine "technische Id" als Identifikation. Weil alle anderen Attribute können sich evt. ändern.
  • Konvention: Tabellennamen sind immer in Mehrzahl.
  • id integer primary key auto_increment: Das Attribut "id" ist eine Zahl, die den Benutzer identifiziert, das wird Primärschlüssel genannt. Die Zahl wird automatisch generiert (auto_increment)
  • name varchar(64): Das Attribut heißt name, der Datentyp ist eine Zeichenkette mit maximaler Länge 64.
  • last_login timestamp: Mit diesem Attribut wird der Zeitpunkt (Datum + Uhrzeit) des letzten Logins festgehalten.

Datentypen

  • Texttypen:
    • char(<length>) Zeichenkette mit fester Länge. Beispiel deutsche Postleitzahl: plz char(5)
    • text: Variable Zeichenkette bis 65535 Zeichen.
    • longtext Variable Zeichenkette bis 4 GByte
    • char(<length>): Zeichenkette mit variabler Länge. Beispiel name varchar(64)
  • Zahltypen:
    • decimal(<length>) oder decimal(<length>, <precisision>): Dezimalzahl mit maximaler Länge von <length> und maximal <precisision> Nachkommastellen. Beispiel: price decimal(13,2)
    • float : Gleitpunktzahlen Beispiel: article_weight float
    • integer oder int: eine ganze Zahl. Beispiel: birth_year int
  • Datumstypen:
    • date: nur Datum. Beispiel: birthday date
    • datetime: Datum und Uhrzeit. Beispiel: term datetime
    • timestamp: Zeitpunkt mit Genauigkeit 1 Sekunde, gilt nur ab 1.1.1970. Beispiel: created_at timestamp
  • Sonstiges:
    • bool: ein Wahrheitswert. Beispiel: active bool