随着互联网技术的不断发展,Web应用程序已经成为人们生活中不可或缺的一部分。而这些应用程序中的数据存储也逐渐从传统的关系型数据库逐渐转向非关系型数据库。ON作为当前更流行的半结构化数据格式之一,在Web应用程序中得到越来越广泛的应用。本文将为您介绍如何在数据库中存储和使用ON类型数据,让你的Web应用程序更加实用和便捷。
1. 什么是ON数据
ON(JavaScript Object Notation)是一种轻量级的数据交换格式,以文本形式表示且易于人类阅读和编写。它基于JavaScript语言的一个子集,不同于XML,它可以不必像XML一样需要额外的标记和命名空间,而直接使用JavaScript中的类型来描述数据结构。
ON中最常用的数据元素有对象(object)、数组(array)、字符串(string)、数字(number)、布尔值(boolean)和null值(null)。其中对象是一组无序名称/值对的,数组是值的有序。以对象为例,一个ON对象可以表示为:
“`
{
“name”: “Lily”,
“age”: 25,
“hometown”: {
“city”: “Shangh”,
“region”: “Pudong”
},
“hobbies”: [
“Reading”,
“Traveling”,
“Cooking”
]
}
“`
在ON中,用大括号描述对象,用中括号描述数组,属性名称和值之间用冒号分隔,不同属性之间用逗号分隔。
2. 数据库中支持ON类型的存储引擎
目前,开源数据库PostgreSQL、MongoDB、MySQL、Oracle等都支持ON数据类型的存储引擎。其中,PostgreSQL和MongoDB是纯粹的非关系型数据库,而MySQL和Oracle在传统的关系型数据库之上也提供了对ON类型数据的支持。
下面我们将分别介绍如何在PostgreSQL、MongoDB、MySQL和Oracle中存储和使用ON类型数据。
3. PostgreSQL
PostgreSQL是一个功能非常强大的开源对象关系型数据库系统,它支持复杂查询和数据处理的高级功能,同时也支持ON类型数据的存储和查询。
3.1 存储ON数据
在PostgreSQL中,可以使用json和jsonb两种数据类型来存储ON类型的数据。它们之间的区别是jsonb是二进制格式的ON类型数据,可以更快速地进行查询和索引,但需要更多的存储空间。在实际存储时,建议使用jsonb类型。
“`
CREATE TABLE employees (
id serial PRIMARY KEY,
name varchar(50) NOT NULL,
contact jsonb NOT NULL
);
“`
在以上示例中,我们已经创建了一个名为“employees”的表,该表包含一个自增长的“id”列、一个“name”列和一个名为“contact”的ON类型列。此时,我们可以将ON类型数据保存在“contact”列中。
“`
INSERT INTO employees (name, contact)
VALUES (‘Lily’, ‘{ “eml”: “lily@gml.com”, “phone”: “123456” }’);
“`
3.2 查询ON数据
在PostgreSQL中,可以使用“->”、“->>”和“#>”等操作符来查询ON类型数据。
“->”操作符可以根据键值获取ON对象中的元素,返回结果是一个ON类型的数据。
“`
SELECT contact->’eml’ AS eml FROM employees WHERE name = ‘Lily’;
“`
运行以上代码后,将会查询到Lily的电子邮件地址。
“->>”操作符可以根据键值获取ON对象中的元素并以字符串的形式返回结果。
“`
SELECT contact->>’phone’ AS phone FROM employees WHERE name = ‘Lily’;
“`
“#>”操作符可以根据键路径获取ON对象中的元素。
“`
SELECT contact#>'{eml}’ AS eml FROM employees WHERE name = ‘Lily’;
“`
此外,PostgreSQL还支持对ON数据进行聚合查询,比如对ON数组进行聚合查询,查找其中的更大值、最小值、总和、平均值等等。这些聚合函数包括json_agg,json_object_agg和jsonb_agg等。
4. MongoDB
MongoDB是目前更流行的非关系型数据库之一,它采用的是面向文档的数据模型,数据以ON的BSON(Binary ON)格式存储在(collections)中。
4.1 存储ON数据
在MongoDB中,我们无需定义列或预定义架构,仅需要指定一个名称和需要插入的文档即可轻松创建一个文档数据。
“`
db.createCollection(’employees’);
db.employees.insert({
“name”: “Lily”,
“age”: 25,
“hometown”: {
“city”: “Shangh”,
“region”: “Pudong”
},
“hobbies”: [
“Reading”,
“Traveling”,
“Cooking”
]
});
“`
在以上示例中,我们已经创建了一个名为“employees”的MongoDB,并插入了一条ON类型数据。
4.2 查询ON数据
MongoDB可以直接以ON格式查询文档数据。
“`
db.employees.find({
“name”: “Lily”
});
“`
以上代码将查询并返回所有名称为“Lily”的文档数据。
MongoDB还提供了一些高级查询操作,如$in、$elemMatch、$exists、$type等操作符,可以帮助我们更加精确地查询ON类型数据。
“`
db.employees.find({
“hobbies”: {
“$in”: [“Reading”]
}
});
“`
以上代码将查询并返回所有“hobbies”中包含“Reading”的文档数据。
5. MySQL
MySQL是一种广泛使用的关系型数据库管理系统,在MySQL 5.7之后加入了对ON类型数据的支持。
5.1 存储ON数据
在MySQL中,我们可以使用ON类型来定义ON类型的列,如下所示:
“`
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
contact ON NOT NULL
);
“`
在以上示例中,我们已经创建了一个名为“employees”的表,该表包含一个自增长的“id”列、一个“name”列和一个名为“contact”的ON类型列。此时,我们可以将ON类型数据保存在“contact”列中。
“`
INSERT INTO employees (name, contact)
VALUES (‘Lily’, ‘{“eml”: “lily@gml.com”, “phone”: “123456”}’);
“`
在以上示例中,我们已经插入了一条ON类型的数据,该数据将会保存在“contact”列中。
5.2 查询ON数据
在MySQL中,我们可以使用ON类型的内置函数对ON类型的数据进行查询和操作。
“`
SELECT ON_EXTRACT(contact, ‘$.eml’) AS eml FROM employees WHERE name = ‘Lily’;
“`
在以上示例中,我们使用了ON_EXTRACT函数来查询“contact”列中的“eml”属性,并将查询到的结果给定一个别名“eml”。
6. Oracle
Oracle是一种商业的关系型数据库管理系统,在Oracle 12c之后加入了对ON类型数据的支持。
6.1 存储ON数据
在Oracle中,我们可以使用BLOB、CLOB和VARCHAR2等数据类型来定义ON类型的列。
“`
CREATE TABLE employees (
id NUMBER NOT NULL,
name VARCHAR2(50) NOT NULL,
contact CLOB,
CONSTRNT employees_pk PRIMARY KEY (id)
);
“`
在以上示例中,我们已经创建了一个名为“employees”的表,该表包含一个“id”列、一个“name”列和一个名为“contact”的CLOB类型列。此时,我们可以将ON类型数据保存在“contact”列中。
“`
INSERT INTO employees (id, name, contact)
VALUES (1, ‘Lily’, ‘{ “eml”: “lily@gml.com”, “phone”: “123456” }’);
“`
在以上示例中,我们已经插入了一条ON类型的数据,该数据将会保存在“contact”列中。
6.2 查询ON数据
在Oracle中,我们可以使用ON_VALUE函数和ON_TABLE函数来查询和操作ON类型的数据。
“`
SELECT ON_VALUE(contact, ‘$.eml’) AS eml FROM employees WHERE name = ‘Lily’;
“`
在以上示例中,我们使用了ON_VALUE函数来查询“contact”列中的“eml”属性,并将查询到的结果给定一个别名“eml”。
7.
ON是Web应用程序中使用最广泛的数据格式之一,它具有轻量级、易读、易解析等优点,因此越来越多的数据库系统开始支持对ON类型数据的存储和查询。其中,PostgreSQL、MongoDB、MySQL和Oracle都提供了对ON类型数据的支持,大大增强了其在Web应用程序中的应用能力。如果您还没有在您的Web应用程序中尝试使用ON类型数据进行存储和查询,那么快快行动起来吧!
相关问题拓展阅读:
ON数据格式是这样的:
你想要解答什么。。。
ON是一种轻量级数据交换格式。json简单说就是js中的对象和数组,所以这两种结构就是对象和数组2种结构,你用的数据格式就是对象和数宏悄册组的复合结构。
你的示例ON数据是名/值对,其中只有一个”wegInstLt”的变量名,值是包含一个条目的数组。假设var info={“wegInstLt”:}; 要获得”哈尔滨市自来水公司”可以这样写:
info.wegInstLt.wiliName
希望可以帮到你,祝你生活愉快!
MySQL 从 5.7 开始,增加了新的数据类型扰并:ON。
ON 类型的出现,弥补了 MySQL 长期以来相比其他关系型数据库旅李族的非标准化特性略势,比如可以用 ON 来实现类似字典、数组等类型。以及之后大量针对 ON 类型字串的相关遍历方法与函数。
比如对数组来说拆弊,简单的遍历路径为 “$” 或者 “$” 来一次性遍历所有元素。MySQL 8.0 又新增了对于数组元素的范围遍历,比如 “$”,表示遍历下标为 m 到 n 的元素。
这样告诉你吧 PHP呢 json_decode(”,true) 就可以得到这样的数组:
Array
(
=> Array
(
=> Array
(
=> 0
=> 530
=> 03
=> 0
=> 0
=>桥戚 0
=> 1
=> 1238
=> 00
=> 哈尔滨市自来水公司
=> 10345
)
)
)
按照你颂竖说的list 我觉得你是说python语言的list么。
在python里面野消大 是 html = json.loads(html,encoding=’utf-8′)
关于json存在数据库类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
来源地址:教你如何在数据库中存储和使用ON类型数据 (json存在数据库类型)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^