
MongoDB와 MySQL은 각각 NoSQL과 SQL 데이터베이스의 대표적인 예로 데이터를 저장하고 관리하는 방식이 다르다. 여기 몇 가지 기본적인 작업들에 대한 MongoDB의 명령어와 그에 해당하는 MySQL의 명령어를 비교해보고자 한다.
1. 데이터베이스 생성
- MongoDB: use 데이터베이스명
- MongoDB에서는 데이터베이스를 명시적으로 생성할 필요가 없다. 존재하지 않는 데이터베이스를 참조하면 자동으로 생성된다.
- MySQL: CREATE DATABASE 데이터베이스명;
2. 데이터베이스 목록 보기
- MongoDB: show dbs
- MySQL: SHOW DATABASES;
3. 테이블(컬렉션) 생성
- MongoDB: MongoDB는 스키마가 없어 테이블(컬렉션)을 미리 생성할 필요가 없습니다. 데이터 입력 시 자동으로 생성됩니다.
- MySQL: CREATE TABLE 테이블명 (컬럼명 데이터타입, ...);
4. 데이터 삽입
- MongoDB: db.컬렉션명.insert({key: "value", ...})
- MySQL: INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES (값1, 값2, ...);
5. 데이터 조회
- MongoDB: db.컬렉션명.find({조건})
- 모든 데이터 조회: db.컬렉션명.find()
- MySQL: SELECT * FROM 테이블명 WHERE 조건;
- 모든 데이터 조회: SELECT * FROM 테이블명;
6. 데이터 업데이트
- MongoDB: db.컬렉션명.update({조건}, {$set: {key: "value"}})
- MySQL: UPDATE 테이블명 SET 컬럼명 = '값' WHERE 조건;
7. 데이터 삭제
- MongoDB: db.컬렉션명.remove({조건})
- MySQL: DELETE FROM 테이블명 WHERE 조건;
이렇게 보면, MongoDB와 MySQL은 비슷한 기능을 하지만 명령어 구문이 많이 다르다는 것을 알 수 있다.
MongoDB는 문서 지향적이어서 더 유연한 데이터 구조를 가지고 있으며
MySQL은 관계형 데이터베이스로서 엄격한 테이블 구조를 가지고 있다.
1. 단일 조건 비교
- MongoDB: 특정 필드가 주어진 값과 일치하는 문서 찾기
db.collection.find({ "field": "value" }) - MySQL: 특정 컬럼이 주어진 값과 일치하는 레코드 찾기
SELECT * FROM table WHERE column = 'value';
2. 다중 조건 비교
- MongoDB: $and 연산자를 사용하여 여러 조건을 결합
db.collection.find({ $and: [{ "field1": "value1" }, { "field2": "value2" }] }) - MySQL: AND 키워드를 사용하여 여러 조건을 결합
SELECT * FROM table WHERE column1 = 'value1' AND column2 = 'value2';
3. 범위 조건 비교
- MongoDB: $gt, $lt, $gte, $lte 연산자를 사용하여 범위 조건을 지정
db.collection.find({ "field": { $gt: "value1", $lt: "value2" } }) - MySQL: > , <, >=, <= 연산자를 사용하여 범위 조건을 지정
SELECT * FROM table WHERE column > 'value1' AND column < 'value2';
4. 부정 조건 비교
- MongoDB: $ne 연산자를 사용하여 일치하지 않는 문서를 찾음
db.collection.find({ "field": { $ne: "value" } }) - MySQL: != 또는 <> 연산자를 사용하여 일치하지 않는 레코드를 찾습니다.
SELECT * FROM table WHERE column != 'value';
5. 포함 조건 비교
- MongoDB: $in 연산자를 사용하여 배열 내의 값 중 하나와 일치하는 문서를 찾습니다.
db.collection.find({ "field": { $in: ["value1", "value2"] } }) - MySQL: IN 키워드를 사용하여 주어진 값 목록 중 하나와 일치하는 레코드를 찾습니다.
SELECT * FROM table WHERE column IN ('value1', 'value2');
이러한 비교를 통해 MongoDB와 MySQL 모두 다양한 조건문을 지원하지만 구문과 사용 방법이 다르다는 것을 알 수 있다. MongoDB는 주로 JSON 스타일의 쿼리 언어를 사용하며 MySQL은 전통적인 SQL 구문을 사용한다.
따라서 사용하는 데이터베이스에 맞는 쿼리 언어를 숙지하는 것이 중요하다!
'IT > SQL 도전하기' 카테고리의 다른 글
| [AWS] AWS에 DB 설치해보기 (0) | 2024.07.22 |
|---|---|
| [SQL] SQL 키 정리 (0) | 2024.03.16 |
| [SQL] REDO VS UNDO 무엇이 다를까? (0) | 2024.03.09 |
| SQL REDO: 데이터 복구와 안정성 강화 (0) | 2024.03.06 |
| SQL UNDO: 데이터 복구의 이해와 활용 (0) | 2024.02.28 |