SQL Flashcards

(43 cards)

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
PRIMARY KEY
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
FOREIGN KEY
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
OLD STYLE JOINS
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
NEW STYLE JOINS
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
LEFT AND RIGHT JOINS
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
JOIN WITH MORE THAN TWO TABLES
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
ALIAS FOR TABLE NAMES
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
TEMPORALE DATENHALTUNG
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
TRANSAKTIONEN UND SPERREN
Beschreibung: - Transaktionen stellen sicher, dass eine Gruppe von SQL-Befehlen als Einheit ausgeführt wird. - Sperren verhindern Konflikte bei parallelen Änderungen.
34
TRANSAKTIONEN UND SPERREN BEISPIELE
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
INDEXIERUNG
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
DISTINCT - Vermeidung Mehrfachselektion
SELECT DISTINCT rabatt FROM artikel;
37
SELECT über mehrere Tabellen
- 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
Gruppenfunktionen
AVG(x) = Mittelwert COUNT(*) = Anzahl selektierter Zeilen MAX(x) = Maximalwert MIN(x) = Minimalwert SUM(x) = Summe Bsp.: SELECT MAX(idaeur) FROM teldat;
39
WHERE - KONSTANTEN-BEREICH-UNGEWISSHEIT-NULL
* 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
verknüpfung
AND, OR, NOT
41
WERTEVERGLEICH MIT MENGEN
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
NOT EXISTS
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
ÄNDERN VON TABELLEN
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]