SQL Flashcards
Was ist SQL?
- Structured Query Language
- Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken
- case insensitive
Welche Teilsprachen der SQL gibt es?
- DDL - Data Definition Language - Erstellen von Datenbank-Objekten
- DML - Data Manipulation Language - Anlegen, Ändern, Löschen von Daten
- DQL - Data Query Language - Abfragen von Daten
- DCL - Data Control Language - Anlegen von Benutzern, Vergabe von Zugriffsrechten
- TCL - Transaction Control Language - Ausführen von Transaktionen
Welche Bestandteile können mit SQL-DDL definiert werden?
- Relationenschemata
- Attribute
- Wertebereiche
- Primärschlüssel
- Fremdschlüssel
Welche Befehle werden von SQL-DDL hauptsächlich verwendet?
- CREATE
- ALTER
- DROP
Was bringt CREATE?
- erzeugt eine neue Tabelle, Datenbank etc.
- Beispiel: CREATE TABLE professoren
Was bringt ALTER?
- modifiziert eine Tabelle, Datenbank etc.
- Beispiel: ALTER TABLE professoren MODIFY name
Was bringt DROP?
- Löschen von einer Tabelle
- DROP TABLE professoren
- Löschen von Inhalten einer Tabelle aber behalten der Struktur: DELETE * FROM professoren
Was tut ein Index?
- lesende Zugriffe werden beschleunigt
- ändernde Zugriffe verlangsamt, da sie sortiert werden müssen
- mit CREATE INDEX wird ein Index für das angegebene Feld erzeugt
Was ist das Foreign Key Constraint?
- Verbindung zwischen Fremdschlüssel und dem zugeordneten Primärschlüssel
- wird dieser Foreign Key Constraint gesetzt, sollte auf die beteiligten Fremdschlüssel ein Index gesetzt werden
Was ist die Aufgabe der SQL-DML
- Data Manipulation Language
- verändert Anwenderdaten in der Datenbank
Was ist INSERT?
- fügt neue Statemens in eine Datenbanktabelle ein
- mit dem Befehl VALUES wird der Datensatz angesprochen
- Beispiel: INSERT INTO kunde (id, name) VALUES (5, Mustermann)
- Auswahl zu verändernder Daten mit SELECT
- Beispiel: INSERT INTO kunde SELECT * FROM neue_kunde
Was ist UPDATE?
- Änderung von Daten in einer Tabelle, ohne WHERE werden alle Zeilen der Tabelle verändert
- In der SET-Klausel gibt man mit Spalte = Wert an, welche Tabellenspalte der aktuellen Zeile welchen Wert bekommen soll
- Beispiel:
update kunde
set strasse = ‘schlossallee 12’
plz = ‘213’
where id = 5
Was tut DELETE?
- Löscht aus Zeilen einer Tabelle, ohne WHERE werden alle Zeilen eine Tabelle gelöscht
- auch leere Tabelle bleibt Teil der DB, nur mit DROP wird die Tabelle entfernt
- Beispiel: DELETE FROM kunde WHERE name =’Mustermann’
Worauf muss bei DML-Befehlen geachtet werden?
- die Integritätsregeln müssen eingehalten werden, z.B. keinen Kunden löschen, wenn es noch einen aktuellen Auftrag gibt
- alle Spalten die NOT NULL haben, müssen einen Wert zugewiesen haben
- Spaltenlänge muss beachtet werden
- wenn das Statement fehlschlägt, werden die Zeilen wieder in den ursprünglichen Zustand zurückversetzt
Was ist SELECT?
- Teil der SQL-DQL
- wichtigste SQL-Statement
- hat mehrere Klauseln:
1. SELECT
2. FROM
3. JOIN
4. WHERE
5. GROUP BY
6. ORDER BY
Was macht DISTINCT?
- untedrückt mehrfach auftretende Werte
- Beispiel: SELECT DISTINCT ort, gibt alle Orte aus wo Kunden wohnen, aber keine doppelten Orte
Wie verwendet man ein Aias?
- SELECT name AS langer_name FROM kunde
- SELECT name.ort from kunde AS k
Was macht FROM?
- muss mindestens eine Tabelle enthalten, die im SELECT Statement angesprochen wird, alle anderen Tabellen werden in der JOIN-Klausel angegeben
- wenn eine Tabelle mehrfach verwendet werden soll, muss ihr ein Alias gegeben werden
- Beispiel: SELECT tb1.* FROM tabelle1 AS tb1, tabelle1 AS tb2 WHERE tb1.id <> tb2.id AND tb1.name = tb2.name
Was macht WHERE?
- beschreibt die eingeschränkte Auswahl an Zeilen
- kann aus verschiedenen booleschen Ausdrücken zusammengesetzt werden (AND, OR, NOT)
- wenn man nach NULL suchen will, muss IS NULL verwendet werden
Was macht LIKE?
- spezieller Vergleichsoperator für Zeichenfelder
Was ist der SFW-Block
- SELECT, FROM, WHERE
- SELECT: Projektionsliste angegeben, integriert arithmetische Operationen und Aggregatfunktionen
- FROM: spezifiziert zu verwendende Relation, führt eventuelle Umbenennungen durch, Verbindet Relationen mittels kartesischen Produkts
- WHERE: spezifiziert Selektionsbedingungen und Verbundbedingungen um aus dem kartesischen Produkt einen Gleichverbund zu machen
Was macht JOIN?
- Verbindet mehrere Tabellen
- Folgt direkt auf FROM-Klausel
- wenn JOIN verwendet wird, wird nur eine Tabelle in FROM genannt und alle weiteren in JOIN
- JOIN Formulierung hat den Vorteil besserer Lesbarkeit
- bei mehr als zwei Tabellen müssen mehrere JOINS verwendet werden
- einziger SQL-Befehl der mehrfach genannt werden darf, außer subselects
Was macht GROUP BY?
- gleiche Spaltenwerte werden zu Gruppenn zusammengefasst
- man kann COUNT oder SUM durchführen