Database ㄷㄷ

한가연·2021년 7월 21일
0

주위 사람들이 'DB는 어렵다', '이해하는데 몇년 거림', '어렵지만 중요' 등등 계속 얘기해서 잔뜩 쫄고 강의를 들었는데 생각보다 할만 했다. 그동안 쌓인 두려움이 한 몫을 한 것 같지만 ㅎㅎ 뭐 그렇다고 이해한 건 아니다 그냥 database에 d정도는 알 것 같은 정도😅

이해한 바로는 database는 나중에 data를 잘 찾을 수 있기 위해서 잘 쌓아두는 것. 그리고 database는 두가지 종류가 있다는 것; 엑셀 형식인 RDBMS(SQL)과 딕셔너리 형태인 No-SQL.

What I learned:

1. RDBMS(SQL) & No-SQL

SQL은 열과 행을 미리 정해놔야 해서 중간에 열을 더하는 것은 어렵다. 그러나, 정형화가 되있어 데이터가 일관적이고 분석하기가 편리하다.

No-SQL은 하나 마다 같은 값을 가질 필요가 없기 때문에 유연하다. 자유로운 형태이기 때문에 데이터 일관성에서는 SQL에 비해 떨어진다.

SQL 예로는 MS-SQL, My-SQL 등이 있고
No-SQL 예로는 MongoDB가 있다.

2. pymongo package로 MongoDB를 조작하기!

언제나처럼 package를 설치하고 기본코드를 작성하면 본격적으로 시작할 수 있다

# 기본 코드
from pymongo import MongoClient           # pymongo를 임포트 하기(패키지 인스톨 먼저 해야겠죠?)
client = MongoClient('localhost', 27017)  # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta                      # 'dbsparta'라는 이름의 db를 만듭니다.

Data를 크게 4가지로 다룰 수 있다 - insert, find, update, delete

MongoDB에 insert 하기

# 'users'라는 collection에 {'name':'bobby','age':21}를 넣습니다.
db.users.insert_one({'name':'bobby','age':21})
db.users.insert_one({'name':'kay','age':27})
db.users.insert_one({'name':'john','age':30})

data를 찾기 (find)

# MongoDB에서 데이터 모두 보기
all_users = list(db.users.find({}))
# 조건에 해당되는 것들 찾기
same_ages = list(db.users.find({'age':21},{'_id':False})) # 조건 21살
print(all_users[0])         # 0번째 결과값을 보기
print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기
# 한 개 찾기
user = db.users.find_one({'name':'bobby'}) # 조건 이름 bobby (동일 이름이 있으면 제일 첫번째 출력)

data 수정하기 (update)

# 생김새
db.people.update_many(찾을조건,{ '$set': 어떻게바꿀지 })
# 한 개 업데이트
db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) # 쳣번째 bobby 나이 19로 바꿔
# 지정된거 다 업데이트
db.users.update_many({'name':'bobby'},{'$set':{'age':19}}) # 모든 bobby들 나이를 19로 바꿔

data 삭제하기 (delete)

# 한 개 지우기
db.users.delete_one({'name':'bobby'}) # 쳣번째 bobby 삭제
# 지정된 것 다 지우기
db.users.delete_many({'name':'bobby'}) # 모든 bobby들 삭제

보면 그닥 많이 어렵지는 않다. 퀴즈도 풀고 그러니까 손에 익는 것 같은데... 그래도 database가 어렵다는 사실이 바뀌진 않는다 아직는 물에 발만 담근 거기 때문에. 그래도 주위 사람들이 만든 어두컴컴한 앞날에 한 줄기 빛을 본 것 같다 ㅎ

profile
코딩하는 드라마러버

0개의 댓글