MySQL - UUID

Hallo zusammen, zukünftige Datenbank-Zauberer! Heute tauchen wir in die magische Welt der UUIDs in MySQL ein. Keine Sorge, wenn Ihr neu seid; bis zum Ende dieses Unterrichts werdet Ihr UUIDs wie ein Profi zaubern können!

MySQL - UUID

Die MySQL UUID Funktion

Lassen Sie uns mit den Grundlagen beginnen. UUID steht für Universally Unique Identifier. Es ist, als würde man jedem Sandkorn am Strand einen eigenen einzigartigen Namen geben. quite cool, oder?

In MySQL haben wir eine praktische Funktion namens UUID(), die diese einzigartigen Identifikatoren für uns generiert. Es ist, als hätten wir einen Genie, der uns jedes Mal, wenn wir ihn rufen, einen einzigartigen Wunsch gewährt!

So verwendet man sie:

SELECT UUID();

Wenn Ihr dies ausführt, werdet Ihr etwas wie folgt erhalten:

'123e4567-e89b-12d3-a456-426614174000'

Jedes Mal, wenn Ihr UUID() aufruft, erhaltet Ihr ein anderes Ergebnis. Es ist, als würdet Ihr einen Würfel mit Billionen Seiten werfen!

Warum UUIDs verwenden?

Ihr fragt Euch vielleicht, "Warum all diese langen, komplizierten Strings?" Stellt Euch vor, Ihr betreibt einen riesigen Online-Shop. Ihr müsst sicherstellen, dass jede Bestellung eine eindeutige Nummer hat, zelfs wenn zwei Kunden gleichzeitig eine Bestellung aufgeben. UUIDs lösen dieses Problem großartig!

UUID Format

Nun, lassen Sie uns die Struktur einer UUID analysieren. Es ist nicht nur ein zufälliges Durcheinander von Zeichen; es gibt eine Methode, die Wahnsinn!

Eine UUID ist eine 128-Bit-Nummer, die als 32 Hexadezimalziffern dargestellt wird, in fünf Gruppen durch Bindestriche getrennt. Sie sieht so aus:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Wo:

  • x eine Hexadezimalziffer ist (0-9 oder a-f)
  • M die UUID-Version ist (1-5)
  • N eine Variante ist (8, 9, a oder b)

In MySQL verwenden wir typischerweise Version 1 oder 4 UUIDs.

UUIDs in einer Datenbanktabelle

Lassen Sie uns unser neues UUID-Wissen in einer realen Datenbanktabelle anwenden!

Stellen wir uns vor, wir erstellen eine Tabelle für eine Bibliothek, um Bücher zu verfolgen. Wir verwenden eine UUID als Primärschlüssel:

CREATE TABLE books (
book_id CHAR(36) PRIMARY KEY,
title VARCHAR(100),
author VARCHAR(100),
publication_year INT
);

Nun fügen wir ein Buch unserer Bibliothek hinzu:

INSERT INTO books (book_id, title, author, publication_year)
VALUES (UUID(), 'The MySQL Magician', 'Query Queen', 2023);

Jedes Mal, wenn wir diese INSERT-Anweisung ausführen, fügen wir ein neues Buch mit einer garantiert eindeutigen ID hinzu. Keine Sorge mehr vor doppelten Schlüsseln!

Bücher mit UUIDs auswählen

Um unser magisches MySQL-Buch abzurufen, können wir verwenden:

SELECT * FROM books WHERE title = 'The MySQL Magician';

Dies wird uns etwas wie folgt geben:

book_id                               | title               | author      | publication_year
--------------------------------------+---------------------+-------------+------------------
f47ac10b-58cc-4372-a567-0e02b2c3d479  | The MySQL Magician  | Query Queen | 2023

UUIDs ändern

Nun könnte Ihr denken, "Kann ich eine UUID ändern, wenn sie einmal erstellt wurde?" Die kurze Antwort ist: Ihr könnt es, aber ihr solltet es wahrscheinlich nicht!

UUIDs sind so konzipiert, dass sie einzigartig und dauerhaft sind. Sie zu ändern widerlegt ihren Zweck. Wenn Ihr jedoch unbedingt eine UUID ändern müsst (vielleicht um Testdaten zu bereinigen), könnt Ihr dies so tun:

UPDATE books
SET book_id = UUID()
WHERE title = 'The MySQL Magician';

Dies wird unserem Buch eine neue UUID zuweisen. Aber denken Sie daran, dass dies in einer realen Welt viele Probleme verursachen könnte, wenn andere Teile Ihres Systems die alte UUID referenzieren!

UUID Funktionen und Methoden

MySQL bietet mehrere Funktionen zum Arbeiten mit UUIDs. Sehen wir uns diese in einer praktischen Tabelle an:

Funktion Beschreibung
UUID() Generiert eine neue UUID
UUID_TO_BIN(uuid) Konvertiert eine UUID von Stringformat in Binärformat
BIN_TO_UUID(uuid_bin) Konvertiert eine UUID von Binärformat in Stringformat
IS_UUID(string) Überprüft, ob ein String eine gültige UUID ist

Hier ist ein schneller Beispiel, wie man diese verwendet:

SELECT UUID() AS new_uuid,
UUID_TO_BIN(UUID()) AS binary_uuid,
BIN_TO_UUID(UUID_TO_BIN(UUID())) AS back_to_string,
IS_UUID(UUID()) AS is_valid_uuid;

Dies wird Euch eine neue UUID, ihre binäre Darstellung, die binär in String zurückkonvertierte UUID und eine Bestätigung, dass sie gültig ist, geben.

Schlussfolgerung

Und da habt Ihr es, meine lieben Schüler! Wir sind durch das Land der UUIDs gereist, von ihrer Erstellung bis zu ihrer Verwendung in Datenbanken und haben sogar einen Blick auf einige erweiterte Funktionen geworfen.

Denkt daran, UUIDs sind wie Schneeflocken - keine zwei sind alike (nahezu - die Chancen auf eine Kopie sind astronomisch gering). Sie sind perfekt, um Einzigartigkeit in verteilten Systemen zu gewährleisten, und eine leistungsstarke Waffe in Eurem MySQL-Werkzeugkasten.

Wenn Ihr Eure MySQL-Abenteuer fortsetzt, werdet Ihr viele weitere Verwendungszwecke für UUIDs finden. Sie sind besonders nützlich in Situationen, in denen Ihr eindeutige Identifikatoren ohne eine zentrale Autorität benötigen.

Übt weiter, bleibt neugierig, und bevor Ihr es wisst, werdet Ihr der UUID-Zauberer in Eurem Entwicklungsteam! Bis zum nächsten Mal, viel Spaß beim Abfragen!

Credits: Image by storyset