SQL - JSON-Funktionen: Ein Leitfaden für Anfänger

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute begeben wir uns auf eine aufregende Reise in die Welt der SQL- und JSON-Funktionen. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast – ich werde dein freundlicher Guide sein, und wir werden dies Schritt für Schritt durchgehen. Am Ende dieses Tutorials wirst du JSON-Daten wie ein Profi jonglieren können!

SQL - JSON Functions

Was ist JSON?

Bevor wir uns den SQL-Funktionen zuwenden, lassen Sie uns über JSON sprechen. JSON steht für JavaScript Object Notation und ist eine beliebte Methode zum Speichern und Austauschen von Daten. Denk daran als eine Möglichkeit, Informationen in einem Format zu organisieren, das sowohl für Menschen als auch für Computer leicht lesbar ist.

Zum Beispiel, hier ist einige JSON-Daten über ein Buch:

{
"title": "Das SQL-Abenteuer",
"author": "Jane Coder",
"year": 2023,
"genres": ["Technologie", "Bildung"]
}

Sieht das nicht ordentlich und organisiert aus? Das ist die Schönheit von JSON!

Warum JSON in SQL verwenden?

Nun, du könntest dich fragen, "Warum brauchen wir JSON in unseren Datenbanken?" Stell dir vor, du betreibst einen Online-Buchladen. Einige Bücher haben mehrere Autoren, andere nur einen. Einige haben viele Genres, andere nur wenige. JSON ermöglicht es uns, diese verschiedenen Informationen flexibel zu speichern, ohne eine Vielzahl von separaten Tabellen zu erstellen.

SQL JSON-Funktionen: Deine neuen besten Freunde

Lassen Sie uns die Stars in unserem SQL-JSON-Spiel kennenlernen. Diese Funktionen helfen uns dabei, mit JSON-Daten in unseren SQL-Datenbanken zu arbeiten.

1. JSON_VALUE()

Diese Funktion ist wie ein Schatzsucher. Sie gräbt in deinen JSON-Daten und zieht einen bestimmten Wert heraus.

SELECT JSON_VALUE('{"name": "Alice", "age": 30}', '$.name') AS FirstName;

Das wird zurückgeben:

FirstName
--------
Alice

Hier fragen wir SQL, dass es in unsere JSON-Daten schaut und den Wert associated mit dem Schlüssel "name" findet.

2. JSON_QUERY()

Während JSON_VALUE einen einzelnen Wert abruft, kann JSON_QUERY ein gesamtes Objekt oder Array abrufen.

SELECT JSON_QUERY('{"books": ["SQL 101", "JSON Meisterschaft"]}', '$.books') AS BookList;

Ergebnis:

BookList
--------
["SQL 101", "JSON Meisterschaft"]

Diese Funktion ist perfekt, wenn du verschachtelte JSON-Strukturen extrahieren musst.

3. JSON_MODIFY()

Diese Funktion ist wie dein persönlicher JSON-Editor. Sie ermöglicht es dir, Werte in deinen JSON-Daten zu ändern.

DECLARE @json NVARCHAR(100) = '{"name": "Bob", "age": 35}';
SELECT JSON_MODIFY(@json, '$.age', 36) AS UpdatedJSON;

Ergebnis:

UpdatedJSON
-----------
{"name": "Bob", "age": 36}

Wir haben Bob einen Geburtstag gegeben! Wir haben sein Alter von 35 auf 36 geändert.

4. ISJSON()

Diese Funktion ist unser JSON-Detektiv. Sie überprüft, ob eine Zeichenkette gültiges JSON ist.

SELECT ISJSON('{"name": "Charlie", "age": 40}') AS IsValidJSON;

Ergebnis:

IsValidJSON
-----------
1

Ein Rückgabewert von 1 bedeutet "Ja, das ist gültiges JSON", während 0 bedeutet "Nein, kein gültiges JSON".

5. JSON_OBJECT()

Diese Funktion ist wie eine JSON-Fabrik. Sie erstellt JSON-Objekte aus deinen SQL-Daten.

SELECT JSON_OBJECT('name': 'Dana', 'age': 28) AS PersonJSON;

Ergebnis:

PersonJSON
----------
{"name":"Dana","age":28}

Das ist eine großartige Möglichkeit, deine regulären SQL-Daten in JSON-Format zu konvertieren.

Alles zusammenbringen

Nun, da wir unsere JSON-Funktionen kennengelernt haben, sehen wir, wie wir sie in einer realen Welt-Situation verwenden können. Stellen wir uns vor, wir verwalten diesen Online-Buchladen, den wir earlier erwähnt haben.

-- Tabelle zur Speicherung von Buchinformationen erstellen
CREATE TABLE Books (
BookID INT PRIMARY KEY,
BookInfo NVARCHAR(MAX)
);

-- Einige Beispieldaten einfügen
INSERT INTO Books (BookID, BookInfo)
VALUES
(1, '{"title": "SQL Grundlagen", "author": "John Doe", "year": 2020, "genres": ["Technologie", "Bildung"]}'),
(2, '{"title": "JSON und Du", "author": "Jane Smith", "year": 2021, "genres": ["Technologie"]}');

-- Abfrage zur获取 Buchtitel
SELECT
BookID,
JSON_VALUE(BookInfo, '$.title') AS Title
FROM Books;

-- Abfrage zur获取 alle Genres
SELECT
BookID,
JSON_QUERY(BookInfo, '$.genres') AS Genres
FROM Books;

-- Jahr eines Buches aktualisieren
UPDATE Books
SET BookInfo = JSON_MODIFY(BookInfo, '$.year', 2023)
WHERE BookID = 1;

-- Ein neues Genre zu einem Buch hinzufügen
UPDATE Books
SET BookInfo = JSON_MODIFY(
BookInfo,
'$.genres',
JSON_QUERY(
CONCAT(
'[',
SUBSTRING(JSON_QUERY(BookInfo, '$.genres'), 2, LEN(JSON_QUERY(BookInfo, '$.genres')) - 2),
',"Programmierung"]'
)
)
)
WHERE BookID = 2;

-- Überprüfen, ob BookInfo gültiges JSON ist
SELECT
BookID,
ISJSON(BookInfo) AS IsValidJSON
FROM Books;

Und da hast du es! Wir haben eine Tabelle erstellt, JSON-Daten eingefügt, spezifische Werte abgefragt, unsere JSON aktualisiert und sogar neue Informationen zu unseren JSON-Arrays hinzugefügt.

Fazit

Glückwunsch! Du hast deine ersten Schritte in die Welt der SQL-JSON-Funktionen unternommen. Diese leistungsstarken Werkzeuge ermöglichen es uns, mit flexiblen, verschachtelten Datenstrukturen direkt in unseren SQL-Datenbanken zu arbeiten. Während du deine Reise fortsetzt, wirst du immer mehr Möglichkeiten finden, diese Funktionen zu nutzen, um robuste, flexible Datenbanklösungen zu erstellen.

Denke daran, der Schlüssel zum Beherrschen dieser Konzepte ist die Übung. Also habe keine Angst, mit deinen eigenen JSON-Daten und SQL-Abfragen zu experimentieren. Frohes Coden und möge deine Datenbanken stets normalisiert sein!

Credits: Image by storyset