新聞中心
隨著互聯(lián)網技術的不斷發(fā)展,Web應用程序已經成為人們生活中不可或缺的一部分。而這些應用程序中的數(shù)據存儲也逐漸從傳統(tǒng)的關系型數(shù)據庫逐漸轉向非關系型數(shù)據庫。ON作為當前更流行的半結構化數(shù)據格式之一,在Web應用程序中得到越來越廣泛的應用。本文將為您介紹如何在數(shù)據庫中存儲和使用ON類型數(shù)據,讓你的Web應用程序更加實用和便捷。

1. 什么是ON數(shù)據
ON(JavaScript Object Notation)是一種輕量級的數(shù)據交換格式,以文本形式表示且易于人類閱讀和編寫。它基于JavaScript語言的一個子集,不同于XML,它可以不必像XML一樣需要額外的標記和命名空間,而直接使用JavaScript中的類型來描述數(shù)據結構。
ON中最常用的數(shù)據元素有對象(object)、數(shù)組(array)、字符串(string)、數(shù)字(number)、布爾值(boolean)和null值(null)。其中對象是一組無序名稱/值對的,數(shù)組是值的有序。以對象為例,一個ON對象可以表示為:
“`
{
“name”: “Lily”,
“age”: 25,
“hometown”: {
“city”: “Shangh”,
“region”: “Pudong”
},
“hobbies”: [
“Reading”,
“Traveling”,
“Cooking”
]
}
“`
在ON中,用大括號描述對象,用中括號描述數(shù)組,屬性名稱和值之間用冒號分隔,不同屬性之間用逗號分隔。
2. 數(shù)據庫中支持ON類型的存儲引擎
目前,開源數(shù)據庫PostgreSQL、MongoDB、MySQL、Oracle等都支持ON數(shù)據類型的存儲引擎。其中,PostgreSQL和MongoDB是純粹的非關系型數(shù)據庫,而MySQL和Oracle在傳統(tǒng)的關系型數(shù)據庫之上也提供了對ON類型數(shù)據的支持。
下面我們將分別介紹如何在PostgreSQL、MongoDB、MySQL和Oracle中存儲和使用ON類型數(shù)據。
3. PostgreSQL
PostgreSQL是一個功能非常強大的開源對象關系型數(shù)據庫系統(tǒng),它支持復雜查詢和數(shù)據處理的高級功能,同時也支持ON類型數(shù)據的存儲和查詢。
3.1 存儲ON數(shù)據
在PostgreSQL中,可以使用json和jsonb兩種數(shù)據類型來存儲ON類型的數(shù)據。它們之間的區(qū)別是jsonb是二進制格式的ON類型數(shù)據,可以更快速地進行查詢和索引,但需要更多的存儲空間。在實際存儲時,建議使用jsonb類型。
“`
CREATE TABLE employees (
id serial PRIMARY KEY,
name varchar(50) NOT NULL,
contact jsonb NOT NULL
);
“`
在以上示例中,我們已經創(chuàng)建了一個名為“employees”的表,該表包含一個自增長的“id”列、一個“name”列和一個名為“contact”的ON類型列。此時,我們可以將ON類型數(shù)據保存在“contact”列中。
“`
INSERT INTO employees (name, contact)
VALUES (‘Lily’, ‘{ “eml”: “l(fā)ily@gml.com”, “phone”: “123456” }’);
“`
3.2 查詢ON數(shù)據
在PostgreSQL中,可以使用“->”、“->>”和“#>”等操作符來查詢ON類型數(shù)據。
“->”操作符可以根據鍵值獲取ON對象中的元素,返回結果是一個ON類型的數(shù)據。
“`
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數(shù)據進行聚合查詢,比如對ON數(shù)組進行聚合查詢,查找其中的更大值、最小值、總和、平均值等等。這些聚合函數(shù)包括json_agg,json_object_agg和jsonb_agg等。
4. MongoDB
MongoDB是目前更流行的非關系型數(shù)據庫之一,它采用的是面向文檔的數(shù)據模型,數(shù)據以ON的BSON(Binary ON)格式存儲在(collections)中。
4.1 存儲ON數(shù)據
在MongoDB中,我們無需定義列或預定義架構,僅需要指定一個名稱和需要插入的文檔即可輕松創(chuàng)建一個文檔數(shù)據。
“`
db.createCollection(’employees’);
db.employees.insert({
“name”: “Lily”,
“age”: 25,
“hometown”: {
“city”: “Shangh”,
“region”: “Pudong”
},
“hobbies”: [
“Reading”,
“Traveling”,
“Cooking”
]
});
“`
在以上示例中,我們已經創(chuàng)建了一個名為“employees”的MongoDB,并插入了一條ON類型數(shù)據。
4.2 查詢ON數(shù)據
MongoDB可以直接以ON格式查詢文檔數(shù)據。
“`
db.employees.find({
“name”: “Lily”
});
“`
以上代碼將查詢并返回所有名稱為“Lily”的文檔數(shù)據。
MongoDB還提供了一些高級查詢操作,如$in、$elemMatch、$exists、$type等操作符,可以幫助我們更加精確地查詢ON類型數(shù)據。
“`
db.employees.find({
“hobbies”: {
“$in”: [“Reading”]
}
});
“`
以上代碼將查詢并返回所有“hobbies”中包含“Reading”的文檔數(shù)據。
5. MySQL
MySQL是一種廣泛使用的關系型數(shù)據庫管理系統(tǒng),在MySQL 5.7之后加入了對ON類型數(shù)據的支持。
5.1 存儲ON數(shù)據
在MySQL中,我們可以使用ON類型來定義ON類型的列,如下所示:
“`
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
contact ON NOT NULL
);
“`
在以上示例中,我們已經創(chuàng)建了一個名為“employees”的表,該表包含一個自增長的“id”列、一個“name”列和一個名為“contact”的ON類型列。此時,我們可以將ON類型數(shù)據保存在“contact”列中。
“`
INSERT INTO employees (name, contact)
VALUES (‘Lily’, ‘{“eml”: “l(fā)ily@gml.com”, “phone”: “123456”}’);
“`
在以上示例中,我們已經插入了一條ON類型的數(shù)據,該數(shù)據將會保存在“contact”列中。
5.2 查詢ON數(shù)據
在MySQL中,我們可以使用ON類型的內置函數(shù)對ON類型的數(shù)據進行查詢和操作。
“`
SELECT ON_EXTRACT(contact, ‘$.eml’) AS eml FROM employees WHERE name = ‘Lily’;
“`
在以上示例中,我們使用了ON_EXTRACT函數(shù)來查詢“contact”列中的“eml”屬性,并將查詢到的結果給定一個別名“eml”。
6. Oracle
Oracle是一種商業(yè)的關系型數(shù)據庫管理系統(tǒng),在Oracle 12c之后加入了對ON類型數(shù)據的支持。
6.1 存儲ON數(shù)據
在Oracle中,我們可以使用BLOB、CLOB和VARCHAR2等數(shù)據類型來定義ON類型的列。
“`
CREATE TABLE employees (
id NUMBER NOT NULL,
name VARCHAR2(50) NOT NULL,
contact CLOB,
CONSTRNT employees_pk PRIMARY KEY (id)
);
“`
在以上示例中,我們已經創(chuàng)建了一個名為“employees”的表,該表包含一個“id”列、一個“name”列和一個名為“contact”的CLOB類型列。此時,我們可以將ON類型數(shù)據保存在“contact”列中。
“`
INSERT INTO employees (id, name, contact)
VALUES (1, ‘Lily’, ‘{ “eml”: “l(fā)ily@gml.com”, “phone”: “123456” }’);
“`
在以上示例中,我們已經插入了一條ON類型的數(shù)據,該數(shù)據將會保存在“contact”列中。
6.2 查詢ON數(shù)據
在Oracle中,我們可以使用ON_VALUE函數(shù)和ON_TABLE函數(shù)來查詢和操作ON類型的數(shù)據。
“`
SELECT ON_VALUE(contact, ‘$.eml’) AS eml FROM employees WHERE name = ‘Lily’;
“`
在以上示例中,我們使用了ON_VALUE函數(shù)來查詢“contact”列中的“eml”屬性,并將查詢到的結果給定一個別名“eml”。
7.
ON是Web應用程序中使用最廣泛的數(shù)據格式之一,它具有輕量級、易讀、易解析等優(yōu)點,因此越來越多的數(shù)據庫系統(tǒng)開始支持對ON類型數(shù)據的存儲和查詢。其中,PostgreSQL、MongoDB、MySQL和Oracle都提供了對ON類型數(shù)據的支持,大大增強了其在Web應用程序中的應用能力。如果您還沒有在您的Web應用程序中嘗試使用ON類型數(shù)據進行存儲和查詢,那么快快行動起來吧!
相關問題拓展閱讀:
- ON數(shù)據格式是這樣的:
ON數(shù)據格式是這樣的:
你想要解答什么。。。
ON是一種輕量級數(shù)據交換格式。json簡單說就是js中的對象和數(shù)組,所以這兩種結構就是對象和數(shù)組2種結構,你用的數(shù)據格式就是對象和數(shù)宏悄冊組的復合結構。
你的示例ON數(shù)據是名/值對,其中只有一個”wegInstLt”的變量名,值是包含一個條目的數(shù)組。假設var info={“wegInstLt”:}; 要獲得”哈爾濱市自來水公司”可以這樣寫:
info.wegInstLt.wiliName
希望可以幫到你,祝你生活愉快!
MySQL 從 5.7 開始,增加了新的數(shù)據類型擾并:ON。
ON 類型的出現(xiàn),彌補了 MySQL 長期以來相比其他關系型數(shù)據庫旅李族的非標準化特性略勢,比如可以用 ON 來實現(xiàn)類似字典、數(shù)組等類型。以及之后大量針對 ON 類型字串的相關遍歷方法與函數(shù)。
比如對數(shù)組來說拆弊,簡單的遍歷路徑為 “$” 或者 “$” 來一次性遍歷所有元素。MySQL 8.0 又新增了對于數(shù)組元素的范圍遍歷,比如 “$”,表示遍歷下標為 m 到 n 的元素。
這樣告訴你吧 PHP呢 json_decode(”,true) 就可以得到這樣的數(shù)組:
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存在數(shù)據庫類型的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網站建設、網站維護、網站改版的網站建設公司,提供成都網站制作、成都網站建設、成都網站推廣、成都網站優(yōu)化seo、響應式移動網站開發(fā)制作等網站服務。
標題名稱:教你如何在數(shù)據庫中存儲和使用ON類型數(shù)據(json存在數(shù)據庫類型)
當前URL:http://www.5511xx.com/article/dpgcocs.html


咨詢
建站咨詢
