《Mysql必讀MySQL與Mongo簡(jiǎn)單的查詢實(shí)例代碼》要點(diǎn):
本文介紹了Mysql必讀MySQL與Mongo簡(jiǎn)單的查詢實(shí)例代碼,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
MYSQL教程首先在這里我就不說關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)之間的區(qū)別了(百度上有很多)直接切入主題
MYSQL教程我想查詢的內(nèi)容是這樣的:分?jǐn)?shù)大于0且人名是bob或是jake的總分?jǐn)?shù) 平均分?jǐn)?shù) 最小分?jǐn)?shù) 最大分?jǐn)?shù) 計(jì)數(shù)
MYSQL教程舉這個(gè)實(shí)例來試試用MySQL和mongodb分別寫一個(gè)查詢
MYSQL教程首先我們先做一些準(zhǔn)備工作
MYSQL教程MySQL的數(shù)據(jù)庫(kù)結(jié)構(gòu)如下
MYSQL教程
CREATE TABLE `new_schema`.`demo` (
`id` INT NOT NULL,
`person` VARCHAR(45) NOT NULL,
`score` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`));
MYSQL教程建完表之后我們來插入一些數(shù)據(jù)
MYSQL教程
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ('1', 'bob', '50');
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ('2', 'jake', '60');
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ('3', 'bob', '100');
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ('6', 'jake', '100');
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ('8', 'li', '100');
MYSQL教程我截個(gè)圖方便看一下結(jié)構(gòu)
MYSQL教程
MYSQL教程好 接下來我們進(jìn)入mongodb的準(zhǔn)備工作 看一下建立的mongodb的集合里面文檔的結(jié)構(gòu)(基本跟MySQL一毛一樣)在這里我就不寫插入文檔的具體過程了 (為了便看mongodb的顯示我都用兩種格式顯示:一個(gè)是表哥模塊顯示 一個(gè)是文本模塊顯示)
MYSQL教程 這個(gè)是表格模塊顯示
MYSQL教程
MYSQL教程 這個(gè)是文本模塊顯示
MYSQL教程
/* 1 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e17"),
"person" : "bob",
"sorce" : 50
}
/* 2 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e18"),
"person" : "bob",
"sorce" : 100
}
/* 3 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e19"),
"person" : "jake",
"sorce" : 60
}
/* 4 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e1a"),
"person" : "jake",
"sorce" : 100
}
/* 5 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e1b"),
"person" : "li",
"sorce" : 100
}
MYSQL教程開始進(jìn)入正題
MYSQL教程現(xiàn)在我想查的MySQL語(yǔ)句是這樣的(分?jǐn)?shù)大于0且人名是bob或是jake的總分?jǐn)?shù) 平均分?jǐn)?shù) 最小分?jǐn)?shù) 最大分?jǐn)?shù) 計(jì)數(shù))
MYSQL教程
SELECT person, SUM(score), AVG(score), MIN(score), MAX(score), COUNT(*)
FROM demo
WHERE score > 0 AND person IN('bob','jake')
GROUP BY person;
MYSQL教程下面開始用Mongo寫出這個(gè)查詢
MYSQL教程 首先想到的是聚合框架
MYSQL教程先用$match過濾 分?jǐn)?shù)大于0且人名是bob或是jake
MYSQL教程
db.demo.aggregate(
{
"$match":{
"$and":[
{"sorce":{"$gt":0}},
{"person":{"$in":["bob","jake"]}}
]
}
}
MYSQL教程得到這個(gè)結(jié)果
MYSQL教程 這個(gè)是表哥模塊顯示的結(jié)果:
MYSQL教程
MYSQL教程 這個(gè)是文本模塊顯示的結(jié)果:
MYSQL教程
/* 1 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e17"),
"person" : "bob",
"sorce" : 50
}
/* 2 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e18"),
"person" : "bob",
"sorce" : 100
}
/* 3 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e19"),
"person" : "jake",
"sorce" : 60
}
/* 4 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e1a"),
"person" : "jake",
"sorce" : 100
}
MYSQL教程然后想要分組并且顯示最大 最小 總計(jì) 平均值 和計(jì)數(shù)值
MYSQL教程那么$group派上用場(chǎng)了:
MYSQL教程
db.demo.aggregate(
{
"$match":{
"$and":[
{"sorce":{"$gt":0}},
{"person":{"$in":["bob","jake"]}}
]
}
},
{
"$group":{"_id":"$person",
"sumSorce":{"$sum":"$sorce"},
"avgSorce":{"$avg":"$sorce"},
"lowsetSorce":{"$min":"$sorce"},
"highestSorce":{"$max":"$sorce"},
"count":{"$sum":1}}
}
)
MYSQL教程得到的結(jié)果就是 分?jǐn)?shù)大于0且人名是bob或是jake的總分?jǐn)?shù) 平均分?jǐn)?shù) 最小分?jǐn)?shù) 最大分?jǐn)?shù) 計(jì)數(shù)
MYSQL教程 結(jié)果的表格模塊顯示:
MYSQL教程
MYSQL教程 結(jié)果的文本模塊顯示:
MYSQL教程
/* 1 */
{
"_id" : "bob",
"sumSorce" : 150,
"avgSorce" : 75.0,
"lowsetSorce" : 50,
"highestSorce" : 100,
"count" : 2.0
}
/* 2 */
{
"_id" : "jake",
"sumSorce" : 160,
"avgSorce" : 80.0,
"lowsetSorce" : 60,
"highestSorce" : 100,
"count" : 2.0
}
MYSQL教程以上所述是小編給大家介紹的MySQL與Mongo簡(jiǎn)單的查詢實(shí)例代碼,希望對(duì)大家有所贊助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的.在此也非常感謝大家對(duì)維易PHP網(wǎng)站的支持!
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql必讀MySQL與Mongo簡(jiǎn)單的查詢實(shí)例代碼》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9495.html