What Is Jsonb Data Type?


Scott Campbell

The JSONB data type is a powerful feature in PostgreSQL that allows you to store and query JSON (JavaScript Object Notation) data in a structured manner. JSONB stands for “JSON Binary” and it is an extension of the JSON data type in PostgreSQL.

What is JSON?

JSON is a lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate. It is widely used for representing structured data, especially in web applications.

Why use JSONB?

The JSONB data type provides several advantages over the regular JSON data type:

  • Efficient storage: JSONB stores data in a binary format, which results in reduced storage space compared to regular text-based JSON.
  • Faster indexing and querying: The binary storage format allows for more efficient indexing and querying of JSONB data, making it ideal for applications that require fast retrieval of specific information from large datasets.
  • Data validation: PostgreSQL provides built-in support for validating the structure of JSONB documents using various functions and operators.

Working with JSONB

To work with the JSONB data type in PostgreSQL, you can use various functions and operators provided by the database.

Create a table with a column of type JSONB:

    info JSONB

Inserting JSONB data into the table:

INSERT INTO users (info)
VALUES ('{"name": "John", "age": 30, "email": "john@example.com"}');

Querying JSONB data:

You can use the -> operator to extract a specific field from a JSONB document:

SELECT info->'name' AS name, info->'age' AS age
FROM users;

You can also use the #> operator to extract a nested field from a JSONB document:

SELECT info#>'{address, city}' AS city
FROM users;

Updating JSONB data:

To update a specific field in a JSONB document, you can use the jsonb_set function:

UPDATE users
SET info = jsonb_set(info, '{name}', '"Jane"')
WHERE id = 1;

Deleting JSONB data:

To delete a specific field from a JSONB document, you can use the operator:

UPDATE users
SET info = info - 'email'
WHERE id = 1;


The JSONB data type in PostgreSQL provides a flexible and efficient way to store and query structured JSON data. It offers benefits such as reduced storage space, faster indexing and querying, and built-in data validation. By leveraging the power of JSONB, you can enhance your PostgreSQL database with support for complex and dynamic data structures.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy