SlideShare a Scribd company logo
1 of 21
Download to read offline
‫خدا‬ ‫نام‬ ‫به‬
‫ترکیة‬‫در‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ٍ ِ‫یافت‬ ‫ساختار‬ ‫ّای‬ ُ‫داد‬MariaDB Server 10.2‬‬
‫پَر‬ ‫هحوذیاى‬ ‫ّاهَى‬
‫ایراى‬ ‫ًَیساى‬ ِ‫ترًاه‬ ‫گردّوایی‬
CoderConf3
‫هستن؟‬ ‫کی‬ ‫هن‬
•‫پَر‬ ‫هحوذیاى‬ ‫ّاهَى‬
•‫ٍب‬ ‫الیف‬ ‫ضرکت‬ ‫ّای‬ ‫دیتاتیس‬ ‫هذیر‬
•‫ّای‬ ‫تالگ‬ ‫در‬ ُ‫ًَیسٌذ‬OrangeTech.irٍAlihossein.ir
•‫تر‬ ‫هثتٌی‬ ‫ّای‬ ‫دیتاتیس‬ ‫هذیریت‬ ‫ّای‬ ‫راّکار‬ ُ‫دٌّذ‬ ِ‫ارائ‬MySQLٍMariaDB
‫هقدهه‬
•‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬SQL‫تراتر‬ ‫در‬NoSQL‫ًیست‬.
•‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬Structured‫تراتر‬ ‫در‬Semi-Structured‫ًیست‬.
•ٍ‫د‬ ‫ایي‬ ‫ترکیة‬ ‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬‫است‬.
‫تا‬‫کٌین‬ ِ‫چ‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬ ‫چالص‬‫؟‬
SQL And NoSQL
‫هقدهه‬
‫باشه‬ ‫تخیلی‬ ‫علمی‬ ‫و‬ ‫ترسناک‬ ‫سبک‬ ‫از‬ ‫ترکیبی‬ ‫فیلم‬ ‫یک‬ ‫اگر‬...
‫هقدهه‬
‫است‬ ُ‫ضذ‬ ‫هتغیر‬ ٍ ‫جذیذ‬ ‫ّای‬ ُ‫داد‬ ‫ظَْر‬ ِ‫ت‬ ‫هٌجر‬ ‫دیجیتال‬ ‫عصر‬.
oMobile
oIoT
oSocial Network
‫ّستٌذ‬ ‫خَد‬ ‫سازهاى‬ ‫ترای‬ ‫زیر‬ ‫هَارد‬ ‫از‬ ‫یکی‬ ‫اًتخاب‬ ِ‫ت‬ ‫هجثَر‬ ‫کارّا‬ ٍ ‫کسة‬:
o‫آًْا‬ ‫ترکیة‬ ٍ ‫دیتاتیس‬ ‫هذیریت‬ ‫چٌذیي‬ ‫اًتخاب‬ ‫یا‬ ٍ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫یا‬ ِ‫یافت‬ ‫ساختار‬ ‫ّای‬ ‫دیتاتیس‬ ‫از‬ ‫یکی‬ ‫اًتخاب‬
o‫تاضذ‬ ‫فَق‬ ‫ٍیژگی‬ ٍ‫د‬ ‫ّر‬ ‫دارای‬ ِ‫ک‬ ‫دیتاتیسی‬ ‫هذیریت‬ ‫اًتخاب‬.
‫هقایسه‬JSON‫و‬Relational
JSON Relational
Agility Safety
Flexibility Reliability
Simplicity Transaction
Ubiquity Data Integrity
‫هعرفی‬MariaDB
•‫ای‬ ِ‫راتط‬ ‫دیتاتیس‬ ‫هذیریت‬ ‫سیستن‬
•Drop in replacement for MySQL
•ُ‫ضذ‬ ِ‫ارائ‬ ِ‫ًسخ‬ ‫آخریي‬:10.2
•‫ی‬ ِ‫ًسخ‬ ‫ّای‬ ‫ٍیژگی‬ ‫هْوتریي‬10.2
o‫ّای‬ ُ‫داد‬ ‫سازی‬ ُ‫رخیر‬Semi Structured‫قالة‬ ‫در‬JSON
o‫تَاتع‬Window Functions
o‫هَتَر‬ ‫هعرفی‬MyRocks(‫تَسط‬ ُ‫ضذ‬ ‫اّذا‬Facebook)
JSON‫در‬MariaDB
•ٍ ‫ای‬ ِ‫راتط‬ ‫ّای‬ ُ‫داد‬ ‫ترکیة‬/ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫یا‬
•‫اجرای‬Query‫از‬ ُ‫استفاد‬ ‫تا‬ ‫ّا‬SQLِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬ ‫رٍی‬ ‫تر‬
•‫ّای‬ ُ‫داد‬ ‫تغییر‬‫خاصیت‬ ‫تا‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ACID Transaction
•‫دادى‬ ‫تغییر‬ ِ‫ت‬ ‫ًیاز‬ ‫تذٍى‬ ُ‫داد‬ ‫هذل‬ ‫گسترش‬Schema
‫با‬ ‫تفاوت‬MySQL
•MySQL‫ی‬ ِ‫ًسخ‬ ‫در‬5.7‫ٍیژگی‬JSON‫کرد‬ ‫هعرفی‬ ‫را‬.
•‫در‬MySQL‫ی‬ ُ‫داد‬ ‫ًَع‬ ‫در‬ ِ‫ساختاریافت‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬JSON‫هیطًَذ‬ ُ‫رخیر‬.
•‫طَل‬ ‫هحذٍدیت‬JSON‫هتغیر‬ ِ‫ت‬ ِ‫ٍاتست‬ ‫رکَرد‬ ‫ّر‬ ‫در‬
max_allowed_packet‫هیثاضذ‬( .Max = 1G)
‫ها‬ ‫داده‬ ‫ترکیب‬ ‫از‬ ‫هثالی‬
id title username created_time attr
1 Ham HaMo0n 2017-07-12 {"about":"I’ m a
programmer","mobile":"093
70272977","work":"lifeweb
"}
2 Ali Ali 2017-07-13 {"about":"I’ m a
programmer","mobile":"093
70272977","work":"doctor",
"site":"http://ali.com"}
‫یافته‬ ‫ساختار‬ ‫یافته‬ ‫ساختار‬ ‫نیمه‬
‫جدول‬ ‫ساخت‬
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL,
`created_time` timestamp NOT NULL DEFAULT current_timestamp(),
`attr` text NOT NULL,
PRIMARY KEY (`id`),
CHECK (json_valid(`attr`))
) ENGINE=InnoDB
‫داده‬ ‫درج‬
INSERT INTO users(`title`,`username`,`attr`) VALUES
("Ham","Hamoon",'{"about":"I’ m a programmer","mobile":"09370272977","
work":"lifeweb"}'),
("Ali","Ali",'{"about":"I’ m a programmer","mobile":"09370272977","
work":"doctor","site":"http://ali.com"}');
INSERT INTO users(`title`,`username`,`attr`) VALUES
("Ebi","ebrahim98","about:from iran")
‫داده‬ ‫خواندن‬
SELECT title,JSON_VALUE(attr,'$.site') AS 'site',created_time
FROM users
SELECT title,JSON_VALUE(attr, '$.about') AS 'about',JSON_VALUE(attr,
'$.work') AS 'work'
FROM users
WHERE username = 'Hamoon'
‫داده‬ ‫خواندن‬
SELECT title,username,JSON_VALUE(attr, '$.site') AS site
FROM users
WHERE JSON_CONTAINS_PATH(attr, 'one', '$.site')
SELECT title,username
FROM users
WHERE JSON_VALUE(attr, '$.work') = 'lifeweb'
‫ویژگی‬Virtual Column
•‫ّا‬ ‫ستَى‬ ‫دیگر‬ ‫کٌار‬ ‫در‬ ‫هذاٍم‬ ‫یا‬ ٍ ‫هجازی‬ ‫ستَى‬ ‫یک‬ ‫ساخت‬
•‫تاضذ‬ ‫دیگر‬ ‫ستَى‬ ‫چٌذ‬ ‫از‬ ‫ترکیثی‬ ‫هیتَاًذ‬ ‫ستَى‬ ‫ایي‬.
•‫ّای‬ ‫فیلذ‬ ‫کردى‬ ‫ستَى‬ ‫ترای‬ ‫هیتَاى‬ ‫ٍیژگی‬ ‫ایي‬ ‫از‬JSON‫کرد‬ ُ‫استفاد‬.
ALTER TABLE users ADD COLUMN
`work` VARCHAR(128) AS (JSON_VALUE(attr,'$.work')) VIRTUAL
Index‫ها‬ ‫فیلد‬ ‫کردن‬
EXPLAIN SELECT title,username FROM users WHERE `work` = 'lifeweb'
EXPLAIN SELECT title,username FROM users WHERE `work` = 'lifeweb'
ALTER TABLE `users` ADD INDEX `work` (`work`);
‫ها‬ ‫فیلد‬ ‫بروزرسانی‬
•JSON_INSERT
•JSON_REMOVE
•JSON_REPLACE
•JSON_SET
‫ها‬ ‫فیلد‬ ‫بروزرسانی‬
#JSON_INSERT
UPDATE users SET attr=JSON_INSERT(attr, '$.lives', 'Karaj')
WHERE username = 'Hamoon';
#JSON_INSERT
UPDATE users SET attr=JSON_INSERT(attr, '$.interesting', JSON_ARRAY('book', 'internet'))
WHERE username = 'Ali';
#JSON_REPLACE
UPDATE users SET attr=JSON_REPLACE(attr, '$.work', 'Google')
WHERE username = 'Ali';
#JSON_REMOVE
UPDATE users SET attr=JSON_REMOVE(attr, '$.about')
WHERE username = 'Hamoon';
#JSON_SET
UPDATE users SET attr=JSON_SET(attr, '$.interesting', JSON_ARRAY('game', 'travel'))
WHERE username = 'Hamoon';
#JSON_SET
UPDATE users SET attr=JSON_SET(attr, '$.interesting', JSON_ARRAY('book', 'sleep'))
WHERE username = 'Ali';
‫سوال؟‬
‫هن‬ ‫با‬ ‫ارتباط‬
@HamoonDBA
hamo0n
asreiranweb@gmail.com
http://orangetech.ir

More Related Content

Similar to ترکیب داده های ساختار یافته و نیمه ساختار یافته در MariaDB 10.2‬‬

Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Ehsan Hamzei
 
Blockchain proposal-corporation -partly
Blockchain proposal-corporation -partlyBlockchain proposal-corporation -partly
Blockchain proposal-corporation -partlyarmanriazi
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracleEhsan Hamzei
 
Web Application Security Test
Web Application Security TestWeb Application Security Test
Web Application Security TestSaeid Sadeghi
 
اسلايد آموزشي هوش تجاري
اسلايد آموزشي هوش تجارياسلايد آموزشي هوش تجاري
اسلايد آموزشي هوش تجاريAli Masoombeigi
 
Socket Programming in C++
Socket Programming in C++Socket Programming in C++
Socket Programming in C++saeed_delphi
 
Repository pattern
Repository patternRepository pattern
Repository patternMahdi Fa
 
آموزش ASP.NET MVC فصل اول : مقدمات
آموزش ASP.NET MVC فصل اول : مقدماتآموزش ASP.NET MVC فصل اول : مقدمات
آموزش ASP.NET MVC فصل اول : مقدماتMorteza Dalil
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسراهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسSeied Mahdi Sadat Hosseini
 
مفاهیم رایانش ابری
مفاهیم رایانش ابریمفاهیم رایانش ابری
مفاهیم رایانش ابریAli Aboutalebi
 
Microservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسMicroservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسAmir Mahjoorian
 
معرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنمعرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنWeb Standards School
 

Similar to ترکیب داده های ساختار یافته و نیمه ساختار یافته در MariaDB 10.2‬‬ (20)

Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
 
Blockchain proposal-corporation -partly
Blockchain proposal-corporation -partlyBlockchain proposal-corporation -partly
Blockchain proposal-corporation -partly
 
ESB
ESBESB
ESB
 
Faraz help
Faraz helpFaraz help
Faraz help
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracle
 
Web Application Security Test
Web Application Security TestWeb Application Security Test
Web Application Security Test
 
اسلايد آموزشي هوش تجاري
اسلايد آموزشي هوش تجارياسلايد آموزشي هوش تجاري
اسلايد آموزشي هوش تجاري
 
Socket Programming in C++
Socket Programming in C++Socket Programming in C++
Socket Programming in C++
 
ebXML
ebXMLebXML
ebXML
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
Microsoft BI Sumery
Microsoft BI SumeryMicrosoft BI Sumery
Microsoft BI Sumery
 
آموزش ASP.NET MVC فصل اول : مقدمات
آموزش ASP.NET MVC فصل اول : مقدماتآموزش ASP.NET MVC فصل اول : مقدمات
آموزش ASP.NET MVC فصل اول : مقدمات
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
Software architecture002
Software architecture002Software architecture002
Software architecture002
 
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسراهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
 
مفاهیم رایانش ابری
مفاهیم رایانش ابریمفاهیم رایانش ابری
مفاهیم رایانش ابری
 
Microservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسMicroservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویس
 
معرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنمعرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آن
 
Presentation1
Presentation1Presentation1
Presentation1
 

ترکیب داده های ساختار یافته و نیمه ساختار یافته در MariaDB 10.2‬‬

  • 1. ‫خدا‬ ‫نام‬ ‫به‬ ‫ترکیة‬‫در‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ٍ ِ‫یافت‬ ‫ساختار‬ ‫ّای‬ ُ‫داد‬MariaDB Server 10.2‬‬ ‫پَر‬ ‫هحوذیاى‬ ‫ّاهَى‬ ‫ایراى‬ ‫ًَیساى‬ ِ‫ترًاه‬ ‫گردّوایی‬ CoderConf3
  • 2. ‫هستن؟‬ ‫کی‬ ‫هن‬ •‫پَر‬ ‫هحوذیاى‬ ‫ّاهَى‬ •‫ٍب‬ ‫الیف‬ ‫ضرکت‬ ‫ّای‬ ‫دیتاتیس‬ ‫هذیر‬ •‫ّای‬ ‫تالگ‬ ‫در‬ ُ‫ًَیسٌذ‬OrangeTech.irٍAlihossein.ir •‫تر‬ ‫هثتٌی‬ ‫ّای‬ ‫دیتاتیس‬ ‫هذیریت‬ ‫ّای‬ ‫راّکار‬ ُ‫دٌّذ‬ ِ‫ارائ‬MySQLٍMariaDB
  • 3. ‫هقدهه‬ •‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬SQL‫تراتر‬ ‫در‬NoSQL‫ًیست‬. •‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬Structured‫تراتر‬ ‫در‬Semi-Structured‫ًیست‬. •ٍ‫د‬ ‫ایي‬ ‫ترکیة‬ ‫تا‬ ‫ارتثاط‬ ‫در‬ ‫صحثت‬‫است‬. ‫تا‬‫کٌین‬ ِ‫چ‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬ ‫چالص‬‫؟‬ SQL And NoSQL
  • 4. ‫هقدهه‬ ‫باشه‬ ‫تخیلی‬ ‫علمی‬ ‫و‬ ‫ترسناک‬ ‫سبک‬ ‫از‬ ‫ترکیبی‬ ‫فیلم‬ ‫یک‬ ‫اگر‬...
  • 5. ‫هقدهه‬ ‫است‬ ُ‫ضذ‬ ‫هتغیر‬ ٍ ‫جذیذ‬ ‫ّای‬ ُ‫داد‬ ‫ظَْر‬ ِ‫ت‬ ‫هٌجر‬ ‫دیجیتال‬ ‫عصر‬. oMobile oIoT oSocial Network ‫ّستٌذ‬ ‫خَد‬ ‫سازهاى‬ ‫ترای‬ ‫زیر‬ ‫هَارد‬ ‫از‬ ‫یکی‬ ‫اًتخاب‬ ِ‫ت‬ ‫هجثَر‬ ‫کارّا‬ ٍ ‫کسة‬: o‫آًْا‬ ‫ترکیة‬ ٍ ‫دیتاتیس‬ ‫هذیریت‬ ‫چٌذیي‬ ‫اًتخاب‬ ‫یا‬ ٍ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫یا‬ ِ‫یافت‬ ‫ساختار‬ ‫ّای‬ ‫دیتاتیس‬ ‫از‬ ‫یکی‬ ‫اًتخاب‬ o‫تاضذ‬ ‫فَق‬ ‫ٍیژگی‬ ٍ‫د‬ ‫ّر‬ ‫دارای‬ ِ‫ک‬ ‫دیتاتیسی‬ ‫هذیریت‬ ‫اًتخاب‬.
  • 6. ‫هقایسه‬JSON‫و‬Relational JSON Relational Agility Safety Flexibility Reliability Simplicity Transaction Ubiquity Data Integrity
  • 7. ‫هعرفی‬MariaDB •‫ای‬ ِ‫راتط‬ ‫دیتاتیس‬ ‫هذیریت‬ ‫سیستن‬ •Drop in replacement for MySQL •ُ‫ضذ‬ ِ‫ارائ‬ ِ‫ًسخ‬ ‫آخریي‬:10.2 •‫ی‬ ِ‫ًسخ‬ ‫ّای‬ ‫ٍیژگی‬ ‫هْوتریي‬10.2 o‫ّای‬ ُ‫داد‬ ‫سازی‬ ُ‫رخیر‬Semi Structured‫قالة‬ ‫در‬JSON o‫تَاتع‬Window Functions o‫هَتَر‬ ‫هعرفی‬MyRocks(‫تَسط‬ ُ‫ضذ‬ ‫اّذا‬Facebook)
  • 8.
  • 9. JSON‫در‬MariaDB •ٍ ‫ای‬ ِ‫راتط‬ ‫ّای‬ ُ‫داد‬ ‫ترکیة‬/ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫یا‬ •‫اجرای‬Query‫از‬ ُ‫استفاد‬ ‫تا‬ ‫ّا‬SQLِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬ ‫رٍی‬ ‫تر‬ •‫ّای‬ ُ‫داد‬ ‫تغییر‬‫خاصیت‬ ‫تا‬ ِ‫یافت‬ ‫ساختار‬ ِ‫ًیو‬ACID Transaction •‫دادى‬ ‫تغییر‬ ِ‫ت‬ ‫ًیاز‬ ‫تذٍى‬ ُ‫داد‬ ‫هذل‬ ‫گسترش‬Schema
  • 10. ‫با‬ ‫تفاوت‬MySQL •MySQL‫ی‬ ِ‫ًسخ‬ ‫در‬5.7‫ٍیژگی‬JSON‫کرد‬ ‫هعرفی‬ ‫را‬. •‫در‬MySQL‫ی‬ ُ‫داد‬ ‫ًَع‬ ‫در‬ ِ‫ساختاریافت‬ ِ‫ًیو‬ ‫ّای‬ ُ‫داد‬JSON‫هیطًَذ‬ ُ‫رخیر‬. •‫طَل‬ ‫هحذٍدیت‬JSON‫هتغیر‬ ِ‫ت‬ ِ‫ٍاتست‬ ‫رکَرد‬ ‫ّر‬ ‫در‬ max_allowed_packet‫هیثاضذ‬( .Max = 1G)
  • 11. ‫ها‬ ‫داده‬ ‫ترکیب‬ ‫از‬ ‫هثالی‬ id title username created_time attr 1 Ham HaMo0n 2017-07-12 {"about":"I’ m a programmer","mobile":"093 70272977","work":"lifeweb "} 2 Ali Ali 2017-07-13 {"about":"I’ m a programmer","mobile":"093 70272977","work":"doctor", "site":"http://ali.com"} ‫یافته‬ ‫ساختار‬ ‫یافته‬ ‫ساختار‬ ‫نیمه‬
  • 12. ‫جدول‬ ‫ساخت‬ CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `username` varchar(255) NOT NULL, `created_time` timestamp NOT NULL DEFAULT current_timestamp(), `attr` text NOT NULL, PRIMARY KEY (`id`), CHECK (json_valid(`attr`)) ) ENGINE=InnoDB
  • 13. ‫داده‬ ‫درج‬ INSERT INTO users(`title`,`username`,`attr`) VALUES ("Ham","Hamoon",'{"about":"I’ m a programmer","mobile":"09370272977"," work":"lifeweb"}'), ("Ali","Ali",'{"about":"I’ m a programmer","mobile":"09370272977"," work":"doctor","site":"http://ali.com"}'); INSERT INTO users(`title`,`username`,`attr`) VALUES ("Ebi","ebrahim98","about:from iran")
  • 14. ‫داده‬ ‫خواندن‬ SELECT title,JSON_VALUE(attr,'$.site') AS 'site',created_time FROM users SELECT title,JSON_VALUE(attr, '$.about') AS 'about',JSON_VALUE(attr, '$.work') AS 'work' FROM users WHERE username = 'Hamoon'
  • 15. ‫داده‬ ‫خواندن‬ SELECT title,username,JSON_VALUE(attr, '$.site') AS site FROM users WHERE JSON_CONTAINS_PATH(attr, 'one', '$.site') SELECT title,username FROM users WHERE JSON_VALUE(attr, '$.work') = 'lifeweb'
  • 16. ‫ویژگی‬Virtual Column •‫ّا‬ ‫ستَى‬ ‫دیگر‬ ‫کٌار‬ ‫در‬ ‫هذاٍم‬ ‫یا‬ ٍ ‫هجازی‬ ‫ستَى‬ ‫یک‬ ‫ساخت‬ •‫تاضذ‬ ‫دیگر‬ ‫ستَى‬ ‫چٌذ‬ ‫از‬ ‫ترکیثی‬ ‫هیتَاًذ‬ ‫ستَى‬ ‫ایي‬. •‫ّای‬ ‫فیلذ‬ ‫کردى‬ ‫ستَى‬ ‫ترای‬ ‫هیتَاى‬ ‫ٍیژگی‬ ‫ایي‬ ‫از‬JSON‫کرد‬ ُ‫استفاد‬. ALTER TABLE users ADD COLUMN `work` VARCHAR(128) AS (JSON_VALUE(attr,'$.work')) VIRTUAL
  • 17. Index‫ها‬ ‫فیلد‬ ‫کردن‬ EXPLAIN SELECT title,username FROM users WHERE `work` = 'lifeweb' EXPLAIN SELECT title,username FROM users WHERE `work` = 'lifeweb' ALTER TABLE `users` ADD INDEX `work` (`work`);
  • 19. ‫ها‬ ‫فیلد‬ ‫بروزرسانی‬ #JSON_INSERT UPDATE users SET attr=JSON_INSERT(attr, '$.lives', 'Karaj') WHERE username = 'Hamoon'; #JSON_INSERT UPDATE users SET attr=JSON_INSERT(attr, '$.interesting', JSON_ARRAY('book', 'internet')) WHERE username = 'Ali'; #JSON_REPLACE UPDATE users SET attr=JSON_REPLACE(attr, '$.work', 'Google') WHERE username = 'Ali'; #JSON_REMOVE UPDATE users SET attr=JSON_REMOVE(attr, '$.about') WHERE username = 'Hamoon'; #JSON_SET UPDATE users SET attr=JSON_SET(attr, '$.interesting', JSON_ARRAY('game', 'travel')) WHERE username = 'Hamoon'; #JSON_SET UPDATE users SET attr=JSON_SET(attr, '$.interesting', JSON_ARRAY('book', 'sleep')) WHERE username = 'Ali';