SQL - Verwendung von Sequenzen: Ein Anfängerleitfaden

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt der SQL-Sequenzen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – ich werde Ihr freundlicher Guide sein, und wir werden dies Schritt für Schritt durchgehen. Am Ende dieses Tutorials werden Sie Sequenzen wie ein Profi erstellen und manipulieren können!

SQL - Using Sequences

Was sind Sequenzen?

Bevor wir eintauchen, lassen Sie uns verstehen, was Sequenzen sind. Stellen Sie sich vor, Sie nummerieren die Seiten eines Buches. Sie beginnen mit 1, dann 2, 3 und so weiter. Das ist im Wesentlichen, was eine Sequenz in SQL macht – sie generiert automatisch eine Reihe von Zahlen. Dies ist unglaublich nützlich, wenn Sie eindeutige Identifikatoren für Zeilen in Ihren Datenbanktabellen zuweisen müssen.

Nun, lassen Sie uns erkunden, wie Sequenzen in verschiedenen Datenbanksystemen funktionieren.

Sequenzen in MySQL

MySQL, eines der beliebtesten Datenbanksysteme, behandelt Sequenzen etwas anders. Es hat kein dediziertes SEQUENCE-Objekt wie einige andere Datenbanken. Stattdessen verwendet es etwas, das AUTO_INCREMENT genannt wird. Lassen Sie uns sehen, wie das funktioniert!

Erstellen einer Tabelle mit AUTO_INCREMENT

CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
grade INT
);

In diesem Beispiel erstellen wir eine Tabelle namens students. Die id-Spalte ist auf AUTO_INCREMENT gesetzt, was bedeutet, dass MySQL automatisch eine eindeutige Zahl für jede neue Zeile generiert, die wir einfügen.

Fügen wir einige Daten ein und schauen, was passiert:

INSERT INTO students (name, grade) VALUES ('Alice', 95);
INSERT INTO students (name, grade) VALUES ('Bob', 87);
INSERT INTO students (name, grade) VALUES ('Charlie', 92);

Nun, wenn wir alle Zeilen aus unserer Tabelle auswählen:

SELECT * FROM students;

Wird folgendes angezeigt:

id name grade
1 Alice 95
2 Bob 87
3 Charlie 92

Wie Sie sehen können, hat MySQL automatisch eindeutige id-Werte für jede Zeile zugewiesen. Es ist, als hätte ein hilfreicher Bibliothekar Ihre Bücher für Sie nummeriert!

Sequenz an einer bestimmten Stelle starten in MySQL

Manchmal möchten Sie Ihre Sequenz an einer bestimmten Zahl starten. Vielleicht übertragen Sie Daten von einem alten System und möchten dort fortsetzen, wo es aufgehört hat. MySQL ermöglicht uns das!

Ändern des AUTO_INCREMENT-Werts

ALTER TABLE students AUTO_INCREMENT = 1000;

Dieser Befehl weist MySQL an, den AUTO_INCREMENT-Wert bei 1000 für unsere students-Tabelle zu starten. Fügen wir einen neuen Schüler ein und schauen, was passiert:

INSERT INTO students (name, grade) VALUES ('David', 88);
SELECT * FROM students;

Jetzt sieht unsere Tabelle so aus:

id name grade
1 Alice 95
2 Bob 87
3 Charlie 92
1000 David 88

David bekam die id 1000, und jeder neue Schüler, den wir hinzufügen, wird 1001, 1002 und so weiter erhalten. Es ist, als hätten wir ein neues Kapitel in unserem Buch begonnen!

Sequenzen in SQL Server

Nun wechseln wir die Gangart und schauen, wie Sequenzen in SQL Server funktionieren. Im Gegensatz zu MySQL hat SQL Server ein dediziertes SEQUENCE-Objekt. Es ist, als hätten Sie eine spezielle Nummerngenerator-Maschine in Ihrer Datenbank!

Erstellen einer Sequenz

So erstellen wir eine Sequenz in SQL Server:

CREATE SEQUENCE student_id_seq
AS INT
START WITH 1
INCREMENT BY 1;

Dies erstellt eine Sequenz namens student_id_seq, die bei 1 startet und bei jeder Verwendung um 1 zunimmt.

Verwenden der Sequenz

Um unsere neue Sequenz zu verwenden, können wir folgendes tun:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
grade INT
);

INSERT INTO students (id, name, grade)
VALUES (NEXT VALUE FOR student_id_seq, 'Alice', 95);

INSERT INTO students (id, name, grade)
VALUES (NEXT VALUE FOR student_id_seq, 'Bob', 87);

Wenn wir jetzt aus unserer Tabelle auswählen:

SELECT * FROM students;

Wird folgendes angezeigt:

id name grade
1 Alice 95
2 Bob 87

Die NEXT VALUE FOR-Klausel weist SQL Server an, den nächsten Wert aus unserer Sequenz zu verwenden.

Ändern einer Sequenz

Wir können auch unsere Sequenz nach der Erstellung ändern. Zum Beispiel, um von einer anderen Zahl zu starten:

ALTER SEQUENCE student_id_seq
RESTART WITH 1000;

Nun, wenn wir einen neuen Schüler einfügen:

INSERT INTO students (id, name, grade)
VALUES (NEXT VALUE FOR student_id_seq, 'Charlie', 92);

SELECT * FROM students;

Wir werden sehen:

id name grade
1 Alice 95
2 Bob 87
1000 Charlie 92

Es ist, als hätten wir in unserer Nummerierungssystem weitergegangen!

Schlussfolgerung

Und das war's, Leute! Wir haben die Welt der SQL-Sequenzen bereist und herausgefunden, wie sie sowohl in MySQL als auch in SQL Server funktionieren. Denken Sie daran, Sequenzen sind wie Ihr persönlicher Nummernassistent, der Ihnen hilft, Ihre Daten organisiert und eindeutig identifiziert zu halten.

Ob Sie MySQLs AUTO_INCREMENT oder SQL Servers SEQUENCE-Objekt verwenden, die grundlegende Idee ist die gleiche – automatisch eindeutige Zahlen zu generieren, um Ihre Datenbankverwaltung einfacher zu machen.

Während Sie Ihre SQL-Abenteuer fortsetzen, werden Sie Sequenzen in vielen verschiedenen Situationen unglaublich nützlich finden. Sie sind großartig für die Erstellung von Primärschlüsseln, das Nachverfolgen von Bestellungen oder jede Situation, in der Sie eine Reihe von eindeutigen Zahlen benötigen.

Machen Sie weiter mit dem Üben, bleiben Sie neugierig, und bevor Sie es wissen, werden Sie Daten wie ein erfahrener Datenbank-DJ sequenzieren! Frohes Coden und möge Ihre Abfragen stets die erwarteten Ergebnisse liefern!

Credits: Image by storyset