본문 바로가기

CS+/SQL

(11)
pymongo 입문하기 python, mongodb 이 포스팅은 인프런의 'NoSQL/DB(몽고DB) 기초와 파이썬 활용' 강의를 들으면서 정리한 내용입니다 :) 지난 시간까지 mongodb 만을 이용해서 CRUD 를 실습해보았습니다. 이번에는 주피터 노트북 안에서 mongodb를 import 하여 CRUD 를 해보겠습니다. 우선 pip install 을 이용해서 pymongo 를 설치 후 import 합니다. 그리고 본인의 mongodb 에서 접속하면 됩니다. 접속할 때, 주소는 따로 넣지 않는다면 mongodb 의 기본 포트인 27017 을 기준으로 localhost 에 접속합니다. 별도의 connection 을 생성해주었다면 위 [3] 셀처럼 입력해주시면 됩니다. (위 주소는 예시입니다.) 일단 이번 시간에는 기본 로컬 mongodb 로 접속하겠습니..
MongoDB 입문 3단계 document 수정(update) , 삭제(delete) 이 포스팅은 인프런의 'NoSQL/DB(몽고DB) 기초와 파이썬 활용' 강의를 들으면서 정리한 내용입니다 :) 이번에는 document 내용을 조건에 따라서 수정해보겠습니다. 기본 명령어의 구조는 아래와 같습니다. 현재의 컬렉션 상태입니다. - db.people.updateMany( { age: { $gt: 25 } }, { $set: { status: "C" } } ) -> SQL 변환하면, - UPDATE people SET status = "C" WHERE age > 25 ** 한 Document만 수정하려면 updateOne을 사용함 - db.people.updateOne( { age: { $gt: 25 } }, { $set: { status: "C" } } ) - db.people.updateM..
MongoDB 입문 2단계 document 읽기(검색) find 이 포스팅은 인프런의 'NoSQL/DB(몽고DB) 기초와 파이썬 활용' 강의를 들으면서 정리한 내용입니다 :) mongodb 에서 document 를 읽을 때는 아래와 같은 형태로 find를 쓰면 됩니다. 우선 employees 컬렉션을 만들고 document를 집어넣겠습니다. 컬렉션을 만들고 5개의 Doc 가 들어가 있습니다. 이제 정리를 위해 터미널에서 명령어들을 실행해보겠습니다. 지금부터 read 명령어들을 rdbms 와 비교해서 설명하겠습니다. 비유한 rdbms 의 쿼리문 정도는 알고 계신다고 생각하고 설명하겠습니다 :) db.컬렉션.find() -> SELECT * FROM 테이블명 과 같은 명령어입니다. db.people.find({ }, { user_id: 1, status: 1 }) -> ..
MongoDB 입문 1단계 실행 (start, status, use) , 입력(insert) MongoDB 에 간단한 명령어와 실행하는 법을 다뤄보겠습니다. 설치와 관련해서는 다루지 않습니다. 이미 관련 글이 많이 있고, 예전에 설치를 해놓아서 굳이 지우고 재설치하기에는 귀찮아서...ㅎㅎ 만약, 윈도우를 쓰시는 분이라면 우분투를 가상머신으로 설치해서 MongoDB를 설치해주세요 :) 우선, 터미널을 열고 mongodb를 실행해주세요. 명령어는 # mongodb 실행 $ service mongodb start $mongodb 상태 확인 $ service mongodb status # mongodb 실행종료 $ service mongodb stop 자, 그러면 위 명령어대로 실행을 해주시면 됩니다. 그리고 Failed to start mongod.service: Unit mongod.service ..
SQL JOIN - left join, inner join (feat. MY SQL) SQL을 공부한다면, 꼭 알아야하는 개념이 'JOIN'입니다. 이번 시간에는 이에 대해 차근차근 설명해보도록 하겠습니다. 먼저, 곱집합에 대해서 설명하겠습니다. 3개의 원소를 가진 2개의 집합을 곱하면 총 9쌍의 원소로 이루어진 집합이 생깁니다. mysql 로 확인해보겠습니다. 2개의 테이블(=집합)이 있습니다. 각각 원소가 3개씩 들었는데, 이를 카티전 곱 해보겠습니다. 간단합니다. 두 개의 테이블을 콤마(,)로 연결했더니, 곱집합이 생겼습니다. 3 x 3 으로 9 개의 원소가 되었습니다. Point! From 구에 복수의 테이블을 지정하면 교차결합(=곱집합)을 한다! 데이터를 넣어본 테이블로 다시 보겠습니다. 3개의 로우(데이터)가 들은 2개의 테이블이 있습니다. 이를 내부결합할건데요. 그전에 각 테..
Mysql - LIKE , IF, CASE = 연산자로 검색하면 열 값이 완전히 일치할 때만 참이 됩니다. 만약, 일부분만 일치 여부를 알고 싶다면 뭘 써야할까요? 바로 LIKE 입니다. 1) 열명 LIKE '패턴' 을 사용하면 열 값이 부분적으로 일치하는 경우에도 참이 됩니다. 패턴을 정의할 때 % _ 퍼센트와 언더스코어를 쓸 수 있습니다. 퍼센트(%) 는 임의의 문자열을 의미하며, 언더스코어(_) 는 임의의 문자 하나를 의미합니다. * (애스터리스크) 는 LIKE 에서 사용할 수 없습니다. -Point!- LIKE 술어를 사용하여 패턴 매칭으로 검색할 수 있다! 패턴을 정의할 때 사용할 수 있는 메타문자로는 % 와 _ 가 있다! 이제 예제를 보겠습니다. 위 테이블에서 SQL 이라는 글자를 중심으로 로우를 찾아보겠습니다. %SQL% : SQL ..
Mysql - 수치 연산, 문자 연산, IFNULL select 구에서 열을 선택한다고 지난 번에 말했습니다. 이번에는 열끼리의 연산을 통해 나오는 결과를 열로 선택해보겠습니다. 직접 예로 보겠습니다. 위 테이블을 쓰겠습니다. 1) 수치 연산을 통한 열 선택 금액이라는 열을 다른 열끼리의 연산을 통해 선택했습니다. as "원하는 열명"을 쓰면 그 이름으로 열이 생성되는데요. 이 때 키워드 as 는 안쓰고 그냥 띄워쓰기 한칸 하고 써도 됩니다. 그리고 한글을 열명으로 하려면 더블 쿼트로 둘러싸주셔야 합니다. (위 쿼리 참고) 하나 알고 계실건 Mysql 에서는 숫자로 시작하는 이름을 붙일 수 있습니다. 이 때 객체명을 숫자로만 해서는 안됩니다. 숫자+문자 이런 형식으로 객체명이 가능합니다. 하지만, Oracle 에서는 허용되지 않습니다. 이번에는 where..
Mysql - 복수의 열 정렬, 행수 제한(LIMIT,OFFSET) 1) 복수의 열 정렬 이번에는 복수 열로 정렬하는 법을 얘기 해보겠습니다. 같은 값을 가진 행의 순서는 '일정하지 않습'니다. 다음의 예를 보겠습니다. 위의 데이터를 '1-1, 1-2, 1-3' 와 같이 정렬을 하려 합니다. 원하는 대로 출력이 되지 않습니다. b 도 추가해주면 해결이 됩니다. 1차적으로 a열 기준으로 정렬하고 동일 한 값들은 b열을 기준으로 정렬 합니다 이번에는 b열 기준으로 먼저 정렬하고, a열을 그 적용해보겟습니다. 쉽네요. 정렬 뒤에 asc/desc 를 통해서 우선순위의 정렬을 정하고, 정함과 동시에 오름차순, 내림차순도 정할 수 있습니다. asc 는 기본값이니깐 생략해줘도 되지만, 정렬방법을 정할 수 있다는 차원에서 표기했습니다 :) ORDER BY 로 지정한 열에서 NULL 값..