EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • Featured Skills
    • New & Trending
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Log in
  • Sign Up
Home Data Science Data Science Tutorials PostgreSQL Tutorial PostgreSQL jsonb
 

PostgreSQL jsonb

Sohel Sayyad
Article bySohel Sayyad
EDUCBA
Reviewed byRavi Rathore

Updated May 26, 2023

PostgreSQL jsonb

 

 

Introduction to PostgreSQL jsonb

PostgreSQL jsonb is the extended version data type of json data type in PostgreSQL, the main difference of json and jsonb data types is json will store the data in plain text format while jsonb data type will store the data in binary format. Jsonb requires more space to restore the data into the table; the jsonb data type also requires more time to build the input presentation. GIN index is used on jsonb data type columns.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

Syntax

Below is the syntax of jsonb data type in PostgreSQL.

1. Create a table using jsonb data type

Create table name_of_table (name_of_column1 data_type, name_of_column2 data_type,name_of_column1 jsonb, …, name_of_columnN data_type);

2. Create an index on jsonb data type column

Create index name_of_index on name_of_table using GIN (name_of_column);

Below is the parameter description syntax of jsonb data type in PostgreSQL.

  • Create table – This is defined as creating a table using the jsonb data type column. We have created a table and defined the data type of jsonb to its column.
  • Name of the table – This is defined as the table’s name on which table column we have defined the data type as jsonb. Using jsonb data type, we are restoring the jsonb data into the table.
  • Name of the column – This is defined as a table column from which we have defined the data type as jsonb. We can define any data type in the column at table creation.
  • Data type – This is defined as the data type we used on the column at the time of table creation. We are using any data type to the column at the time of table creation in PostgreSQL.
  • Create index – This is defined as creating the index in PostgreSQL on jsonb data type column. We have to create the GIN index on the jsonb data type column for faster-accessing data.
  • Name of the index – It is defined as the name of the index we have to create on the jsonb data type column in PostgreSQL. The name of the index is a very useful and important parameter while creating an index in PostgreSQL.
  • Using GIN – This is defined as creating an index on the jsonb data type column by using the GIN index type.

How PostgreSQL jsonb works?

1. In PostgreSQL, the json data type stores an actual copy of the data inserted into the table, whereas the jsonb data type stores the binary form of the data using binary code.

2. Jsonb data type in PostgreSQL introduced from the version of 9.4. Before version 9.4, jsonb data type is not available.

3. To insert data into the jsonb data type column, we must ensure that the data will contain the proper JSON format.

4. We can insert single as well as multiple values at the same time into the jsonb data type column in PostgreSQL.

5. To select the jsonb data type column data in PostgreSQL, we have used a select statement like other data types of columns.

6. Also, we have used two operators to query the jsonb type of data in PostgreSQL. Below is the operator available in PostgreSQL to query the jsonb data in PostgreSQL.

  • ->
  • ->>

7. In PostgreSQL, we use the first operator to retrieve the key of a JSON object field. This operator is very important while querying data.

8. We use the second operator to retrieve the text from a JSON object field.

9. We can also use the jsonb data type column in the where clause for retrieving data from the column.

10. We have also used the aggregate function such as min, max, average, and sum with jsonb data type.

Examples

Below is an example of jsonb data type in PostgreSQL.

Example #1

Create a table by using the jsonb data type

The below example shows that create a table by using jsonb data type. We have created a table name jsonb_test.

create table jsonb_test (id int, json_data jsonb);
\d+ jsonb_test;

Output:

PostgreSQL jsonb output 1

Example #2

Create an index on jsonb data type column

The below example shows that create an index on the jsonb data type column. We have created an index on the json_data column.

create index json_idx on jsonb_test using GIN (json_data);
\d+ jsonb_test;

Output:

PostgreSQL jsonb output 2

Example #3

Insert data into jsonb data type column

The below example shows that insert data into the jsonb data type column. We have inserted data into the jsonb_test table.

INSERT INTO jsonb_test (id, json_data) VALUES (1, '{ "customer_name": "ABC", "cust_items": {"cust_product": "Book","qty": 10}}');
select * from jsonb_test;

Output:

output 3

Example #4

Insert multiple data into jsonb data type column in a single query

The below example shows that insert multiple data into the jsonb data type column in a single query. We have inserted data into the jsonb_test table.

INSERT INTO jsonb_test (id, json_data) VALUES (1, '{ "customer_name": "ABC", "cust_items": {"cust_product": "Book","qty": 10}}'),
(2, '{ "customer_name": "PQR", "cust_items": {"cust_product": "Notebook","qty": 200}}'),
(3, '{ "customer_name": "XYZ", "cust_items": {"cust_product": "Pen","qty": 150}}'),
(4, '{ "customer_name": "CBD", "cust_items": {"cust_product": "Pencil","qty": 100}}');
select * from jsonb_test;

Output:

output 4

Example #5

Select the data from jsonb data type column by using the native operator

The example below shows you select the data from the jsonb data type column using the native operator.

select id, json_data -> 'customer_name' as Name from jsonb_test;
select id, json_data ->> 'customer_name' as Name from jsonb_test;

Output:

output 5

Recommended Articles

We hope that this EDUCBA information on “PostgreSQL jsonb” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

  1. PostgreSQL VARCHAR
  2. PostgreSQL JDBC Driver
  3. Vacuum in PostgreSQL
  4. hstore in PostgreSQL

Primary Sidebar

Footer

Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

© 2025 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Data Science Course

Hadoop, Data Science, Statistics & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW