A2-04-09.MySQL DATA TYPES-A Practical Guide to MySQL JSON Data Type By Example

时间:2022-04-10 00:16:57

转载自:http://www.mysqltutorial.org/mysql-json/

A Practical Guide to MySQL JSON Data Type By Example

 

Summary: in this tutorial, you will learn how to use MySQL JSON data type to store JSON documents in the database.

Introduction to MySQL JSON data type

MySQL supports the native JSON data type since version 5.7.8. The native JSON data type allows you to store JSON documents more efficiently than the JSON text format in the previous versions.

MySQL stores JSON documents in an internal format that allows quick read access to document elements. The JSON binary format is structured in the way that permits the server to search for values within the JSON document directly by key or array index, which is very fast.

The storage of a JSON document is approximately the same as the storage of LONGBLOB or LONGTEXTdata.

To define a column whose data type is JSON, you use the following syntax:

Notice that a JSON column cannot have a default value. In addition, a JSON column cannot be indexeddirectly. Instead, you can create an index on a generated column that contains values extracted from the JSON column. When you query data from the JSON column, the MySQL optimizer will look for compatible indexes on virtual columns that match JSON expressions.

MySQL JSON data type example

Suppose, we have to track the visitors and their actions on our website. Some visitors may just view the pages and other may view the pages and buy the products. To store this information, we will create a new table called events.

Each event in the events table has an id that uniquely identifies the event. An event also has a name e.g., pageview, purchase, etc., The visitor column is used to store the visitor information.

The properties and browser columns are the JSON columns. They are used to store properties of an event and specification of the browser that visitors use to browse the website.

Let’s insert some data into the events table:

To pull values out of the JSON columns, you use the column path operator ( ->).

This query returns the following output:

Notice that data in the browser column is surrounded by quote marks. To remove the quote marks, you use the inline path operator (->>) as follows:

As you can see in the following output, the quote marks were removed:

To get the browser usage, you can use the following statement:

The output of the query is as follows:

To calculate the total revenue by the visitor, you use the following query:

Here is the output:

In this tutorial, you have learned about the MySQL JSON data type and how to use it for storing JSON documents in the database.