No...SQL?

SJ K·2022년 12월 1일
0

파이썬

목록 보기
3/4

NoSQL?


NoSQL은 말그대로 Not only SQL 혹은 Not SQL이다

기존의 SQL은 RDBMS(관계형데이터베이스)를 기반으로 행과 열로 이루어진 테이블들을 만들어 관리를한다면 그 외의 데이터를 관리하는 방식을 NoSQL로 보면된다. 마치 한국음식과 한국음식이 아닌것 이라고 생각하면 된다.

그 중 json doucument 형태로 관리하는 MongoDB를 쓸 것이다!

MongoDB


mongoDB는 기존의 관계형데이터베이스나 데이터 테이블과 연결된 정형 구조의 데이터 모델을 준수하지 않고 데이터를 Json doucument형태로 저장, 관리 하는 프로그램이다.

사용하기

몽고DB를 사용하기 위해서는

MongoDB

에 접속하고 로그인 후 DB를 생성

DB를 생성 후 개발툴(파이참기준)을 킨 후 pymongo, dnspython 패키지를 추가한다!

코드를 쳐주면

from pymongo import MongoClient
client = MongoClient('DB연결 url')
db = client.dbsparta

몽고DB랑 연결됐다.

데이터넣기(.insert({조건}))

코드를 쳐주고

from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.4ltayve.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta

doc = {
    'name' : 'bob',
    'age' : 27
}

#doc 값을 추가한다.
#.insert() : 괄호안의 값을 추가한다.
db.users.insert_one(doc)

실행하면

들어갔다!

데이터꺼내오기(.find({})/.find_one({조건}))

  • DB안에 있는 모든 데이터를 꺼내오는 법
#데이터 받아오기
#.find를 써서 list형식으로 '_id를 제외한 나머지를 받아온다.'
all_users = list(db.users.find({},{'_id':False}))

#list를 for문으로 돌려서 하나씩 출력하기
for user in all_users:
    print(user)

  • 특정 데이터만 꺼내오기
#.find_one 특정 데이터를 찾아라
user = db.users.find_one({'name':'bobby'},{'_id':False})

print(user)

데이터업데이트(.update_one({'조건'},{'업데이트할 내용'}))


#users에 가서 name이 bobby를 찾아서 'age'를 19로 업데이트를 해라
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

27살이었던 bobby이 업데이트 후 19세로 변했다.

데이터삭제(.delete_one({'조건'})

#users에 가서 name이 bobby를 찾아서 삭제해라
db.users.delete_one({'name':'bobby'})

#name이 bobby를 찾아라
user=db.users.find_one({'name':'bobby'})

print(user)

삭제 후 bobby를 find하면 None으로 뜬다.

참고

노마드코드 - SQL vs NoSQL
NoSQL 데이터베이스별 특징

profile
하루하루 알차게

0개의 댓글