1. 程式人生 > >Mysql與MongoDB的語法比較(CRUD)

Mysql與MongoDB的語法比較(CRUD)

啟動服務:

MySQL:

net start MySQL

MongoDB:

net start MongoDB

關閉服務

MySQL:

net stop MySQL

MongoDB:

net stop MongoDB

連線資料庫:

MySQL:

mysql -u使用者名稱 -p密碼,例如:mysql -uroot -p11

MongoDB:

mongo --port 埠號,例如:mongo --port 27017

查詢資料庫:

MySQL:

show databases;

MongoDB:

show dbs

進入相應的資料庫

MySQL:

use DATABASE_NAME

MongoDB:

use DATABASE_NAME

相同點:

假設MySQL和MongoDB中都有一個相同的資料庫,名稱為“jeecmsv6_f”,則進入該資料庫中的語句是相同的,都是use jeecmsv6_f。

不同點:

假設jeecmsv6_f資料庫在MySQL和MongoDB中均不存在,則在MySQL中就會直接報錯ERROR 1049 (42000): Unknown database 'jeecmsv6_f',而在MongoDB中則是不存在則建立。

刪除資料庫:

MySQL:

drop database jeecmsv6_f;

MongoDB:

在相應的資料庫中執行db.dropDatabase()

查詢

在MySQL中是查詢表

show tables;

在MongoDB中沒有表的概念,這裡是相應的集合,類似於MySQL中的表

show tables

建立demo表/集合

MySQL:

先建立

 create table demo(id int(11) auto_increment primary key,name varchar(24)

再插入

insert into demo(name) values('tom');

MongoDB:

db.demo.insert({'id':1,'name':'tom'})

在MongoDB中,集合demo存在則插入,不存在則自動建立,然後再插入。

需要注意的是MySQL是關係型資料庫,因而表自從被建立後,資料格式都是一樣的,否則無法插入,而MongoDB則是非關係型資料庫,因而他沒有行和列的概念,它就是一些相應的資料集合,欄位又長又短,是json格式的,由於其真實儲存的格式是二進位制格式,它是方便於機器讀取的,因而它又被稱為Binary JSON,縮寫為BSON。

查詢新增的資料:

MySQL:

select * from demo;

查詢結果如下:

+----+------+
| id | name |
+----+------+
|  1 | tom  |
+----+------+
由於MySQL是關係型資料庫,因為資料庫中的每一張表的格式都是固定的,因而我們可以檢視每張表的資料結構。

desc demo;

檢視的結果:

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(24) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

MongoDB:

db.demo.find()

查詢結果如下:

{ "_id" : ObjectId("5870edcf23c3b16367e01840"), "id" : 1, "name" : "tom" }

其中MongoDB中會自動的插入_id資訊,在一個集合裡面,每個集合都有唯一的"_id"值,來確保集合裡面每個文件都能被唯一標識。

修改資料

MySQL:

update 資料表 set 修改欄位 where 查詢欄位;

例如:

update demo set name='jack' where id=1;

MongoDB:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

引數說明:
query : update的查詢條件,類似sql update查詢內where後面的。
update : update的物件和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的
upsert : 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,丟擲異常的級別。

例如:

 db.demo.update({'id':1},{$set:{'name':'jack'}})

刪除資料

MySQL:

 delete from demo where id=1;

MongoDB:

db.demo.remove({'id':1});

由於在修改與刪除中已經執行了簡單的查詢方法了,在此我就不再次寫出了。