SQL JSON: основы

JSON

JSON — это текстовый формат данных, который представляет собой набор пар ключ-значение.

JSON имеет структуру: {'key' : 'value'}

  • key - ключ, по которому мы обращаемся
  • value - значение 

Основное его отличие от ARRAY - то, что он позволяет обращаться к конкретному элементу не просто по индексу, а по ключу. То есть JSON по сути работает выступает таблицей внутри строки. Очень удобно! :)

Пример создания таблицы с JSON:

CREATE TABLE users (
    id BIGINT PRIMARY KEY,
    name TEXT,
    preferences JSONB
);

INSERT INTO users (name, preferences)
VALUES 
    (7, 'Alexander', '{"theme": "dark", "notifications": true}'),
    (4, 'Vladislav', '{"theme": "light", "notifications": false}');

Мы получим вот такую таблицу:

id name preferences
7 Alexander {"theme": "dark", "notifications": true}
4 Vladislav {"theme": "light", "notifications": false}

Если бы мы использовали простую таблицу, то у нас было бы больше колонок, а с использованием JSON мы можем хранить сложные структуры в одной колонке.