Spaltennamen ändern
Wir müssen uns auch mit den Spaltennamen befassen. Ansonsten wiederholen wir die Namen name und id, sie enthalten jedoch unterschiedliche Daten. Andererseits gibt es die erste Spalte „id“ und die Spalte „employee_id“, die die gleichen Daten enthalten.
Schreiben wir eine Abfrage, in der nur die erforderlichen Spalten vorhanden sind, und benennen Sie auch die Spalten mit denselben Namen um:
SELECT
task.id AS task_id,
task.name AS task_desc,
task.deadline AS deadline,
emploee.id AS emploee_id,
emploee.name AS emp_name,
emploee.occupation AS
emp_occupation
FROM employee, task
WHERE emploee.id = task.emploee_id
Und das Ergebnis dieser Abfrage:
task_id | task_desc | Termin | emploee_id | emp_name | emp_occupation |
---|---|---|---|---|---|
1 | Beheben Sie einen Fehler im Frontend | 01.06.2022 | 1 | Iwanow Iwan | Programmierer |
2 | Beheben Sie einen Fehler im Backend | 15.06.2022 | 2 | Petrov Petr | Programmierer |
7 | Das Leben genießen | (NULL) | 4 | Rabinovich Moisha | Direktor |
3 | Kaffee kaufen | 01.07.2022 | 5 | Kirienko Anastasia | Büroleiter |
4 | Kaffee kaufen | 01.08.2022 | 5 | Kirienko Anastasia | Büroleiter |
5 | Kaffee kaufen | 01.09.2022 | 5 | Kirienko Anastasia | Büroleiter |
8 | Das Leben genießen | (NULL) | 6 | Vaska | Der Kater |
Super, das Problem mit unverständlichen Spaltennamen wurde erfolgreich gelöst. Die Abfrage ist etwas lang geworden, aber in der resultierenden Tabelle ist alles klar. Und keine zusätzlichen Spalten.
Tabellenaliase
Manchmal sind Tabellennamen zu lang und nehmen viel Platz in der Abfrage ein. Um die Lesbarkeit zu verbessern, haben die Entwickler von SQL daher, wie bei Spalten, die Möglichkeit geboten, Tabellenaliase anzugeben.
Die allgemeine Form von Aliasnamen (Tabellenaliasnamen) lautet wie folgt:
FROM table1 alias1, table2 alias2
Schreiben wir unsere vorherige Abfrage mit kurzen Aliasnamen um:
SELECT
t.id AS task_id,
t.name AS task_desc,
t.deadline AS deadline,
e.id AS emploee_id,
e.name AS emp_name,
e.occupation AS emp_occupation
FROM employee e, task t
WHERE e.id = t.emploee_id
Die Lesbarkeit hat leicht abgenommen, was aber daran liegt, dass die Namen der Tabellen zunächst einfach und klar waren. Es könnte genauso gut so sein:
SELECT
task.id AS task_id,
task.name AS task_desc,
task.deadline AS deadline,
emploee.id AS emploee_id,
emploee.name AS emp_name,
emploee.occupation AS
emp_occupation
FROM
Microsoft_it_department_employee employee,
Year2022_priority_task task
WHERE emploee.id = task.emploee_id
Und in diesem Fall sind Aliase schon nützlich, oder? ;)
Primärschlüssel
Und noch eine wichtige Information zu Tabellen. Erinnern Sie sich, dass wir in der Aufgabentabelle eine Spalte „employee_id“ hatten? Damit haben wir auf die Mitarbeiter-ID aus der Mitarbeitertabelle verwiesen.
Wenn wir von einer Tabelle auf die Zeilen einer anderen Tabelle verweisen möchten, muss die referenzierte Tabelle eine Spalte mit einer ID haben, die auch als Primärschlüssel bezeichnet wird – PRIMARY KEY .
Meistens handelt es sich dabei um eine speziell hinzugefügte Spalte, deren Werttyp int ist . Beim Hinzufügen von Datensätzen zu einer Tabelle legt SQL automatisch den Wert dieser Spalte fest.
Dann sind viele Dinge an diese Schlüssel gebunden:
- verschiedene Tabellen miteinander verknüpfen;
- schnelle Suche und Filterung nach ID;
- Datenintegrität in der Datenbank (keine Verweise auf nicht vorhandene ID);
- Löschen von Daten, auf die sich niemand bezieht;
- und viele viele andere.
Übrigens gibt es Situationen, in denen eine Tabelle einen sogenannten natürlichen Schlüssel hat . Dies ist der Fall, wenn es eine Spalte gibt, deren Inhalt Eindeutigkeit impliziert. Beispielsweise haben wir beschlossen, der Mitarbeitertabelle Folgendes hinzuzufügen:
- Die Reihenfolge ihres Eintreffens im Unternehmen;
- Steuernummer;
- Nummer und Serie des Reisepasses.
Manchmal verwenden Datenbankdesigner einen natürlichen Schlüssel als Primärschlüssel, meistens werden sie jedoch separat verwendet. Schließlich können Datensätze gelöscht, geändert und dergleichen werden.
Ich nehme an, Sie haben Geschichten im Internet gelesen, in denen Gerichtsvollzieher einer Person Schulden seines vollständigen Namens aufhängen? Dies hängt lediglich mit dem Konzept eines eindeutigen Schlüssels zusammen. Für Banken und Gerichtsvollzieher ist es sehr praktisch, eine Person anhand des vollständigen Namens und des Geburtsjahres zu suchen. Und in 99 % der Fälle reicht dies aus, um eine Person zu identifizieren.
Aber die restlichen <1 % sind vollständige Namensvetter mit demselben Geburtsjahr. Im Leben eines jeden von uns gibt es höchstwahrscheinlich keine solchen Menschen, aber auf nationaler Ebene gibt es sie. Wenn Sie Software schreiben oder eine Datenbank entwerfen, ist es im Allgemeinen hilfreich zu wissen, dass dies auch der Fall sein kann.
GO TO FULL VERSION