Database/MongoDB

[MongoDB] SQL vs MQL

emhaki 2023. 3. 28. 11:21
728x90
반응형
SMALL

SQL이란?

관계형 데이터베이스와 같은 경우에는 데이터를 테이블에 직관적으로 간단하게 나타내는 '관계형' 모델을 기반으로 한다. 우리가 익숙하게 알고있는 SQL(Structured Query Language)은 관계형 데이터베이스에 정보를 저장하고  처리하기 위한 프로그래밍 언어이다. 테이블의 열에는 데이터의 속성이 들어 있으며, 각 레코드에는 일반적으로 각 속성에 대한 값이 있으므로 데이터 포인트 간의 관계를 손쉽게 설정할 수 있다.

MQL이란?

MQL은 MongoDB Query Language로 몽고디비의 쿼리 언어이다. 

SQL이 테이블에 대한 모든 데이터를 조회할때 아래와 같이 문법을 작성한다면

select * from table;

MQL은 아래와 같이 문법을 작성한다. MQL은 객체로서 데이터에 접근한다.

db.collection.fine({});

MQL 문법

SQL과 비교하여 MQL 문법을 정리해보자.

🔎 Create and Alter

SQL

CREATE TABLE people (
    id MEDIUMINT NOT NULL
        AUTO_INCREMENT,
    user_id Varchar(30),
    age Number,
    status char(1),
    PRIMARY KEY (id)
)

MQL

db.people.insertOne( {
    user_id: "abc123",
    age: 55,
    status: "A"
 } )

🔎 Insert

SQL

INSERT INTO people(user_id,
                  age,
                  status)
VALUES ("bcd001",
        45,
        "A")

MQL

db.people.insertOne(
   { user_id: "bcd001", age: 45, status: "A" }
)

🔎 Select

SQL

SELECT *
FROM people
SELECT user_id, status
FROM people
SELECT *
FROM people
WHERE status = "A"

MQL

db.people.find()
db.people.find(
    { },
    { user_id: 1, status: 1, _id: 0 }
)
db.people.find(
    { status: "A" }
)

🔎 Delete Records

SQL

DELETE FROM people
WHERE status = "D"
DELETE FROM people

MQL

db.people.deleteMany( { status: "D" } )
db.people.deleteMany({})

🔎 SQL vs MQL Concepts

📚 MQL에 대한 자세한 레퍼런스는 아래 공식 홈페이지에서 확인할 수 있다.

 

SQL to MongoDB Mapping Chart — MongoDB Manual

Docs Home → MongoDB Manual In addition to the charts that follow, you might want to consider the Frequently Asked Questions section for a selection of common questions about MongoDB.The following table presents the various SQL terminology and concepts an

www.mongodb.com

 

728x90
반응형

'Database > MongoDB' 카테고리의 다른 글

[MongoDB] Replica Set vs Sharded Cluster  (0) 2023.03.25
[MongoDB] Sharded Cluster  (0) 2023.02.01
[MongoDB] Replica Set  (0) 2023.01.30
[MongoDB] MongoDB 구조  (0) 2023.01.30