SQL Flashcards

1
Q

SELECT

A

SELECT Spalte1, Spalte2 FROM Table;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

WHERE

A

SELECT name FROM benutzer WHERE age > 18;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

NULL/NOT NULL

A

SELECT name FROM benutzer WHERE email IS (NOT) NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

INSERT INTO

A

INSERT INTO table(name, age) VALUES (‘Pedro’, 49);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

INSERT ohne Spaltennamen

A

INSERT INTO benutzer VALUES (…);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

DELETE

A

DELETE FROM Table WHERE id = 1;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

update

A

UPDATE benutzer SET age = 50 WHERE name = ‘Pedro’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

create table

A

CREATE TABLE benutzer (id INT, name VARCHAR(50));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

drop table

A

drop table benutzer;
Beschreibung: Löscht eine Tabelle und alle darin gespeicherten Daten dauerhaft

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

TO_CHAR

A

SELECT TO_CHAR(geburtsdatum, ‘DD/MM/YYYY’) FROM benutzer;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

TO_CHAR aciklama

A

DD = Tag zweistellig
MM = Monat zweistellig
YY = Jahr zweistellig
YYYY = Jahr vierstellig
Day = Wochentag
Dy = Kurzname des Wochentags
Mon = Kurzname des Monats
Month = Monatsname vollständig

HH24 = Stunde (0 bis 23)
HH12 = Stunde (0 bis 12)
HH = Stunde (0 bis 12)
MI = Minute
SS = Sekunde
SSSSS = Sekunden seit Mitternacht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

insert datumswert

A

insert into benutzer (geburtsdatum) values (date ‘2000-01-01’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

pflichtfelder mit not null

A

create table benutzer (name varchar(50) not null);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

default

A

create table benutzer ( status varchar(10) DEFAULT ‘aktiv’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

check

A

create table benutzer (age int CHECK (age > 0));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

check in

A

CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
department VARCHAR(30) CHECK (department IN (‘HR’, ‘IT’, ‘Finance’, ‘Marketing’)),
status VARCHAR(10) CHECK (status IN (‘Active’, ‘Inactive’))
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

unique

A

CREATE TABLE benutzer (email VARCHAR(50) UNIQUE);
Beschreibung: stellt sicher, dass alle Werte in einer Spalte eindeutig sind

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

unique über mehrere Spalten

A

CREATE TABLE bestellungen (
benutzer_id INT,
produkt_id INT,
UNIQUE (benutzer_id, produkt_id));

19
Q

alter table

A

ALTER TABLE benutzer ADD telefonnummer VARCHAR(15);

20
Q

group by

A

SELECT abteilung COUNT (*) FROM mitarbeiter GROUP BY abteilung;

aciklama: count() her departmandaki toplam satir sayisini (calisan sayisini) sayar.
GROUP BY, abteilung sütunundaki benzersiz değerler için gruplar oluşturur.
Her departman (abteilung) bir grup olur ve COUNT(
) her grup için satırları (çalışanları) sayar.

21
Q

coalesce

A

SELECT COALESCE (email, ‘kein_email@example.com’) FROM benutzer;

Beschreibung: ersetzt Nullwerte durch einen angegebenen Wert

22
Q

views

A

syntax: CREATE VIEW Ansicht AS SELECT Spalten FROM Tabelle WHERE Bedingung;
BSP:
CREATE VIEW aktive_benutzer AS SELECT * FROM benutzer WHERE status = ‘aktiv’;

Beschreibung: Erstellt eine virtuelle Tabelle basierend auf einer Abfrage

23
Q

update + join güncelleme

A
  • aktualisieren basierend auf mehreren Tabellen
    Bsp:
    UPDATE employees SET salary = departments.budget * 0.1
    FROM departments
    WHERE employees.department_id = departments.id;
24
Q

changing data v´with view

A

BSP:
CREATE OR REPLACE VIEW aktive_benutzer AS
SELECT id, name, status FROM benutzer WHERE status = ‘aktiv’;
UPDATE aktive_benutzer SET status = ‘inaktiv’ WHERE id = 1;

Beschreibung: Änderungen an einer View wirken sich direkt auf die zugrunde liegende Tabelle aus, solange die View basierend auf einfachen Abfragen definiert ist.

25
Q

PRIMARY KEY

A

syntax:
CREATE TABLE Tabelle (
id INT PRIMARY KEY ,
name VARCHAR(50) NOT NULL);

Beschreibung:
-identifiziert eindeutig jede Zeile in einer Tabelle.
-Jeder Wert in der Primary-Key-Spalte muss eindeutig und nicht null sein.

26
Q

FOREIGN KEY

A

syntax:
CREATE TABLE Tabelle (
idINT PRIMARY KEY,
andere_id INT,
FOREIGN KEY (andere_id) REFERENCES andere_tabelle(id));
Beschreibung:
- Verbindet zwei Tabellen, indem sie Beziehungen zwischen Spalten definiert.
- Sicherstellt, dass der Wert in der Fremdschlüssel-Spalte in der referenzierten Tabelle existiert.

27
Q

OLD STYLE JOINS

A

SELECT t1.spalte, t2spalte
FROM Tabelle t1, Tabelle2 t2 WHERE t1.id = t2.id;
Beschreibung: Alte Syntax, bei der Tabellen mit WHERE-Bedingungen verknüpft werden. Modernere Alternativen sind JOIN-Anweisungen.

28
Q

NEW STYLE JOINS

A

SELECT t1.spalte, t2.spalte FROM Tabelle1 t1
INNER JOIN Tabelle2 t2 ON t1.id = t2.id;

Bsp:
SELECT benutzer.name, bestellungen.id
FROM benutzer
INNER JOIN bestellungen
ON benutzer.id = bestellungen.kunde_id;

Beschreibung: modernere und lesbarere Form von Joins. Trennung von Verknüpfungskriterien (ON) und Filterbedingungen (WHERE).

29
Q

LEFT AND RIGHT JOINS

A

SELECT t1.spalte, t2.spalte FROM Tabelle1 t1
LEFT JOIN Tabelle2 t2 ON t1.id = t1.id;

SELECT t1.spalte, t2.spalte FROM Tabelle1 t1
RIGHT JOIN Tabelle2 t2 ON t1.id = t2.id;

BSP: – LEFT JOIN
SELECT kunden.name, bestellungen.id
FROM kunden
LEFT JOIN bestellungen ON kunden.id = bestellungen.kunde_id;

– RIGHT JOIN
SELECT kunden.name, bestellungen.id
FROM kunden
RIGHT JOIN bestellungen ON kunden.id = bestellungen.kunde_id;

Beschreibung:
- LEFT JOIN: Alle Zeilen aus der linken Tabelle und die passenden aus der rechten. Fehlende Werte werden als NULL angezeigt.
- RIGHT JOIN: Umgekehrte Logik - alle Zeilen der rechten Tabelle werden beibehalten.

Left: erste tabelle nach FROM
Right: erste tabelle nach JOIN

30
Q

JOIN WITH MORE THAN TWO TABLES

A

SELECT t1.Spalte, t2.Spalte, t3.Spalte FROM Tabelle t1
JOIN Tabelle2 t2 ON t1.id = t2.id
JOIN Tabelle t3 ON t2.id = t3.id;

Beschreibung: Ermöglicht das Verknüpfen mehrerer Tabellen in einer Abfrage.

31
Q

ALIAS FOR TABLE NAMES

A

SELECT t1.Spalte, t2.Spalte FROM Tabelle t1 AS t1
JOIN Tavelle2 AS t2 ON t1.id = t2.id;

BSP:
SELECT k.name, b.id FROM kunden AS k
JOIN bestellungen AS b ON k.id = b.kunde_id;

Beschreibung: Kürzt Tabellennamen und macht Abfragen kompakter und lesbarer.

32
Q

TEMPORALE DATENHALTUNG

A

CREATE TABLE Tabelle (
id INT,
wert INT,
gueltig_von DATE,
gueltig_bis DATE);

BSP:
INSERT INTO preise (id, wert, gueltig_von, gueltig_bis)
VALUES (1, 100, ‘2024-01-01’, ‘2024-12-31’);

Beschreibung:
- Speichert Daten mit Zeitgültigkeit (z. B. für Preisänderungen).
- Wird oft in historischen oder zeitbasierten Abfragen verwendet.

33
Q

TRANSAKTIONEN UND SPERREN

A

Beschreibung:
- Transaktionen stellen sicher, dass eine Gruppe von SQL-Befehlen als Einheit ausgeführt wird.
- Sperren verhindern Konflikte bei parallelen Änderungen.

34
Q

TRANSAKTIONEN UND SPERREN BEISPIELE

A

Syntax:
BEGIN TRANSACTION;
UPDATE Tabelle SET Spalte = Wert WHERE Bedingung;
COMMIT;
– Rollback für Fehler
ROLLBACK;

BSP:
BEGIN TRANSACTION;
UPDATE konten SET saldo = saldo - 100 WHERE id = 1;
UPDATE konten SET saldo = saldo + 100 WHERE id = 2;
COMMIT;

35
Q

INDEXIERUNG

A

CREATE INDEX index_name ON Tabelle(Spalte);

BSP: CREATE INDEX idx_name ON benutzer(name);

BESCHREIBUNG:
- Verbessert die Abfragegeschwindigkeit, indem ein schneller Zugriff auf die Daten ermöglicht wird.
- Hinweis: Indizes beschleunigen Lesevorgänge, können jedoch Schreibvorgänge verlangsamen.

36
Q

DISTINCT - Vermeidung Mehrfachselektion

A

SELECT DISTINCT rabatt FROM artikel;

37
Q

SELECT über mehrere Tabellen

A
  • In Select angegeben Tabellen werden in WHERE mit mindestens einer Bedingung verknüpft.

SELECT a.name, b.name, a.preis FROM artikel a, artikeltyp b WHERE a.typ = b.typ

38
Q

Gruppenfunktionen

A

AVG(x) = Mittelwert
COUNT(*) = Anzahl selektierter Zeilen
MAX(x) = Maximalwert
MIN(x) = Minimalwert
SUM(x) = Summe

Bsp.: SELECT MAX(idaeur) FROM teldat;

39
Q

WHERE - KONSTANTEN-BEREICH-UNGEWISSHEIT-NULL

A
  • Konstanten: attribut = Konstante
    ◦ Bsp.: DELETE FROM lieferung WHERE kdnr = 2;
  • Bereich: artikel.preis BETWEEN 5.00 AND 10.00
    ◦ Bsp.: DELETE FROM lieferung WHERE artikel.preis BETWEEN 5.00 AND 10.00;
  • Ungewissheit: artikel.typ LIKE ‘%H%’
    ◦ “%” = beliebig viele Zeichen
    ◦ “_” = einzelnes Zeichen
    ◦ Bsp.: DELETE FROM mp3music WHERE interpret LIKE ‘%DJÖtzi%’;
  • Null: artikel.rabatt IS NULL
    ◦ Bsp.: DELETE FROM studium WHERE semester = ‘SS08’ AND note IS NULL;
40
Q

verknüpfung

A

AND, OR, NOT

41
Q

WERTEVERGLEICH MIT MENGEN

A

1) WHERE stg = “MIB” OR stg = “MI7” OR stg = “MMB”
2) WHERE stg IN(“MIB”, “MI7”, “MMB”)
3) WHERE stg IN(SELECT name FROM studiengänge)

42
Q

NOT EXISTS

A

In verschachtelten Anfrage kann geprüft werden, ob eine innere Anfrage Ergebnisse liefert:
BSP:
alle Artikel zu denen es keine Aufträge gibt:
SELECT * FROM artikeltyp WHERE NOT EXISTS (SELECT * FROM artikel WHERE artikel.typ = artikeltyp.typ);
Bu sorgu, artikeltyp tablosundaki, artikel tablosunda karşılığı olmayan kayıtları bulur.

43
Q

ÄNDERN VON TABELLEN

A

ALTER TABLE objektname
ADD (spaltendefinition [, spaltendefinition])
MODIFY (spaltenname änderungen
[,spaltenname änderungen])
DROP (spaltenname [,spaltenname])
ADD CONSTRAINT [constraintname]
constraintdefinition
MODIFY CONSTRAINT [constraintname]
constraintänderung
DROP CONSTRAINT [constraintname]