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});
由於在修改與刪除中已經執行了簡單的查詢方法了,在此我就不再次寫出了。