22.3.5 Документы в таблицах
В MySQL таблица может содержать традиционные реляционные данные, значения JSON или оба типа. Вы можете объединить традиционные данные с JSON-документами, сохраняя документы в столбцах с нативным JSON типом данных.
Примеры в этом разделе используют таблицу city в схеме world_x.
Описание таблицы city
Таблица city имеет пять столбцов (или полей).
+---------------+------------+-------+-------+---------+------------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------+-------+-------+---------+------------------+
| ID | int(11) | NO | PRI | null | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | | | |
| District | char(20) | NO | | | |
| Info | json | YES | | null | |
+---------------+------------+-------+-------+---------+------------------+
Вставка записи
Для вставки документа в столбец таблицы, передайте методу values() правильно сформированный JSON-документ в нужном порядке. В следующем примере документ передаётся в качестве конечного значения для вставки в столбец Info.
mysql-js> db.city.insert().values(
None, "San Francisco", "USA", "California", '{"Population":830000}')
Выбор записи
Вы можете выполнить запрос с условием поиска, которое оценивает значения документов в выражении.
mysql-js> db.city.select(["ID", "Name", "CountryCode", "District", "Info"]).where(
"CountryCode = :country and Info->'$.Population' > 1000000").bind(
'country', 'USA')
+------+----------------+-------------+----------------+-----------------------------+
| ID | Name | CountryCode | District | Info |
+------+----------------+-------------+----------------+-----------------------------+
| 3793 | New York | USA | New York | {"Population": 8008278} |
| 3794 | Los Angeles | USA | California | {"Population": 3694820} |
| 3795 | Chicago | USA | Illinois | {"Population": 2896016} |
| 3796 | Houston | USA | Texas | {"Population": 1953631} |
| 3797 | Philadelphia | USA | Pennsylvania | {"Population": 1517550} |
| 3798 | Phoenix | USA | Arizona | {"Population": 1321045} |
| 3799 | San Diego | USA | California | {"Population": 1223400} |
| 3800 | Dallas | USA | Texas | {"Population": 1188580} |
| 3801 | San Antonio | USA | Texas | {"Population": 1144646} |
+------+----------------+-------------+----------------+-----------------------------+
9 rows in set (0.01 sec)
Связанная информация
Смотрите для получения дополнительной информации.
См. Раздел 13.5, «Тип данных JSON» для подробного описания типа данных.
© 2025 Oracle
Licensed under the GPLv2 License.