인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
DBMS/MongoDB

[MONGO] 📚 몽고디비 자동 실행 🚗 설정하기

몽고디비 자동 실행 설정 몽고디비를 실행할때마다 mongod.exe를 실행해 몽고디비 데몬서버를 띄워야 했는데, mysql처럼 자동으로 서버가 돌아가게 하는 방법이 없을 까 고민하다 성공해서 포스팅 해본다. 현재 본인 PC의 몽고디비 설치 경로는 이렇게 되어있다. 몽고디비 경로 -dbpath 경로 [dbpah 설정하는 법 ] 1. mongod.cfg 설정 파일을 열고 다음과 같이 설정해준다. dbpath와 path 경로는 본인이 설치한 경로로 필히 바꿔주자 log폴더와 파일이 없으면 직접 만들어주면 된다. # mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-..

category_image
인파_
2022.01.25
(0)
DBMS/MySQL

[MYSQL] 📚 트랜잭션(Transaction) 개념 & 사용 💯 완벽 정리

트랜잭션(Transaction) 이란? 트랜잭션(Transaction)의 사전적 의미는 거래이고, 컴퓨터 과학 분야에서의 트랜잭션(Transaction)은 "더이상 분할이 불가능한 업무처리의 단위"를 의미한다. 이것은 하나의 작업을 위해 더이상 분할될 수 없는 명령들의 모음, 즉, 한꺼번에 수행되어야 할 일련의 연산모음을 의미한다. 다음과 같은 상황이 있다고 가정하자. A는 매달 부모님에게 생활비를 송금받는다. 어느 날, 부모님이 A에게 생활비를 송금해 주기 위해 ATM을 이용했고 여느날 처럼 A의 계좌로 생활비를 송금했다. 그러나 모종의 이유로 인하여 부모님의 계좌에선 생활비가 차감되었는데, A의 계좌에는 생활비가 입금되지 않았다. 계좌이체 행위를 풀어 쓴 것이다. 보다 시피 계좌이체 라는 행위는 인출..

category_image
인파_
2022.01.13
(0)
DBMS/MySQL

[MYSQL] 📚 INSERT INTO + JOIN 사용해보기

INSERT INTO + JOIN 쿼리 우선 join은 select용이다. insert문에 join을 결합하여 사용한다는 말은, join하여 select한 특수한 값을 골라 insert 한다는 말과 같다. 다음과 같은 상황일때 사용할 수 있다. Q. TB1 에는 있고, TB2에는 없는 레코드만 TB2에 추가하기 INSERT INTO TB2 (코드, 년도) ( SELECT A.코드, A.년도 -- 추가할 필드 FROM TB1 A LEFT JOIN TB2 B ON A.코드 = B.코드 WHERE B.코드 IS NULL -- join한 TB2테이블의 필드가 NULL이라는 말은 TB2에는 없는 값을 의미한다. ) Reference https://m.blog.naver.com/PostView.naver?isHtt..

category_image
인파_
2021.12.06
(0)
DBMS/MySQL

[MYSQL] 📚 워크벤치에서 테이블 ERD 생성하기 / 쿼리 추출하기

MySQL 워크벤치 ERD 생성 1. 상단 메뉴 탭에서 Database > Reserve Engineer를 선택한다. 2. Hostname, port, username을 입력하고 다음으로 이동한다. 3. ERD로 추출할 DB를 선택 후 다음으로 이동한다. 4. Retrieval Completed Successfully 메시지가 나타났으면 다음으로 이동한다. 5. Show Filter 버튼을 눌러서 제외할 테이블을 선택한다. (왼쪽이 선택, 오른쪽이 제외이다.) 6. ERD 완성 및 배치하기 ctrl + s로 ERD를 mwb 확장자로 저장할 수 있다. MySQL 워크벤치 ERD로 쿼리문 추출 ERD를 만들고 저장하게 된다면 파일명.mwb 확장명으로 저장된다. 만일 누군가 만든 mwb 파일을 워크벤치에 열어..

category_image
인파_
2021.12.06
(0)
DBMS/MongoDB

[MONGO] 📚 배열 수정 연산자

배열 수정 연산자 $ list: [1, 2, 3] 이라는 필드가 있다고 칩시다. // list: [1, 2, 3] // list: 2 를 기억해서 list.2의 요소값을 5로 바꾼다. db.zero.update({ list: 2 }, { 'list.$': 5 }) // list: [1, 5, 3] 위의 쿼리를 통해 두 번째 요소를 바꿀 수 있습니다. 즉 찾은 값의 위치를 기억하는 연산자입니다. $addToSet 배열필드에 해당 요소가 없으면 추가하고, 있으면 아무것도 하지 않습니다. 몽고DB에서 자체적으로 배열에 해당 요소가 있는지 검사해주기 때문에 편합니다. { $addToSet: { 필드1: 값, 필드2: 값, ... } } $pop 배열 메소드처럼 몽고DB 배열에서 맨 앞 또는 맨 뒤 요소를 꺼내는..

category_image
인파_
2021.11.15
(0)
DBMS/MongoDB

[MONGO] 📚 필드 수정 연산자

필드 수정 연산자 다큐먼트의 필드를 수정하는 연산자들입니다. 제일 많이 쓰이는 연산자이기 때문에 꼭 알아둘 필요가 있습니다. $inc 필드 값을 증가시키거나 감소시키는 연산자입니다. 양수면 증가, 음수면 감소입니다. { $inc: { 필드: 1 } } // 필드의 값을 1 증가 $mul 필드 값에 곱하는 연산자입니다. 1보다 큰 수를 곱하면 커지고, 1보다 작은 수를 곱하면 작아집니다. 쿼리의 순서에 조심하세요. $inc는 필드 안의 속성이었다면, 이번에는 필드가 $mul 안의 속성입니다. { $mul: { 필드: 2 } } // 필드의 값을 두배 증가 $rename 필드 이름을 바꾸는 연산자입니다. 여러 필드를 동시에 교체할 수 있습니다. { $rename: { 필드1: 이름, 필드2: 이름, ... ..

category_image
인파_
2021.11.15
(0)
DBMS/MongoDB

[MONGO] 📚 몽고디비 인덱스(Index) 정리

몽고디비 인덱스 DB에서 인덱스는 정말 중요한 역할을 합니다. 자주 조회되는 필드를 따로 저장해서 조회 밑 정렬 시의 속도를 빠르게 하는 기법입니다. /* book 컬렉션의 someField 필드에 대해 인덱스를 블록킹 방식으로 생성한다. 명령 실행 후 인덱스 생성이 완료될 때까지 해당 컬렉션에 대한 모든 CRUD는 블록킹 된다. */ db.book.createIndex({name:1}) // name필드에 인덱스 설정 // single field index : 단일 key 인덱스, 1은 오름차순, -1은 내림차순 /* book 필드에 대해 인덱스를 논블록킹 방식으로 생성한다. 명령 실행 후 인덱스 생성이 진행 중이더라도 해당 컬렉션에 대한 모든 CRUD가 가능하다. */ db.someCollection..

category_image
인파_
2021.11.15
(0)
DBMS/MongoDB

[MONGO] 📚 Embedded / 배열 / 객체 검색 쿼리

Embedded Documents 검색 embedded Document란 auther Field처럼 Document 안 배열 형태로 있는 Document 를 말한다. $elemMatch $elemMatch는 조건이 배열 안의 요소와 일치하는 필드를 선택합니다. db.book.find({ "auther":{ $elemMatch: {"name":"park"} // auther배열객체 들 중에서 {"name":"park"} 검색. } }) 일반 배열 검색 db.book.find({"language":"eng"}) // Embedded Document가 아니고 일반 배열일 경우 바로 접근하면 된다. $all $all 쿼리 안에 있는 모든 값을 포함하는 배열을 값으로 가진 태그를 선택합니다. 아래의 배열이 예에서..

category_image
인파_
2021.11.15
(0)
DBMS/MongoDB

[MONGO] 📚 limit / skip 쿼리

limit db.book.find().limit(2) // 2개만 출력한다. skip mysql의 offset이라고 보면 된다 db.book.find().skip(2) // 리스트에서 2개를 skip후 Document를 출력 // 원래 총 3개 조회된다면, 2개를 스킾애서 마지막 1개만 출력

category_image
인파_
2021.11.15
(0)
DBMS/MongoDB

[MONGO] 📚 몽고디비 CRUD 쿼리 문법 명령어 💯 정리

데이터베이스 명령어 데이터베이스 생성 show dbs -- 데이터베이스 리스트가 출력 db -- 현재 사용하고 있는 데이터베이스 출력 db.stats() -- 현재 사용 하고 있는 데이터 베이스 정보 출력 데이터베이스 사용 use database -- 데이터베이스 사용 혹은 생성(존재 하지 않을 경우 생성) -- use 를 통해 생성된 데이터베이스는 그 안에 최소 한개의 Document 가 존재해야 show dbs 를 통해 확인할 수 있다. 데이터베이스 삭제 db.dropDatabase() -- 데이터베이스를 삭제 -- 이 명령어는 use DATABASE_NAME 를 통해 지울 데이터베이스가 선택되어 있어야 합니다. 컬렉션 명령어 컬렉션 생성 // db.createCollection( name [, op..

category_image
인파_
2021.11.13
(0)
DBMS/MySQL

[MYSQL] 📚 RECURSIVE (재귀 쿼리)

WITH RECURSIVE 문 (재귀 쿼리) 프로그래밍에서 재귀 함수를 들어봤듯이, SQL에서도 재귀 쿼리 기법이 존재한다. 다만 문법이 굉장히 해괴한데 우선 WITH RECURSIVE 쿼리문을 작성하고 내부에 UNION을 통해 재귀를 구성하는 것이 포인트이다. WITH RECURSIVE cte_count AS ( -- Non-Recursive 문장( 첫번째 루프에서만 실행됨 ) SELECT 1 AS n UNION ALL -- Recursive 문장(읽어 올 때마다 행의 위치가 기억되어 다음번 읽어 올 때 다음 행으로 이동함) SELECT n + 1 AS num FROM cte_count WHERE n < 3 ) SELECT * FROM test; 메모리 상에 가상의 테이블을 저장한다. 반드시 UNION..

category_image
인파_
2021.11.12
(0)
DBMS/MySQL

[MYSQL] 📚 WITH (임시 테이블 생성)

WITH (임시 테이블) SQL을 통해 빅데이터라 불리는 매우 크고 무거운 데이터를 다루는데, 새로운 결과를 원하고 저장할 때마다 table을 저장할 수 없다. 또한, 실무에서는 실제 실행 속도도 빠르게 진행되어야 하므로 SQL에는 임시 테이블을 만드는 다양한 방법이 존재한다. WITH TEMP_TABLE as ( SELECT NAME, count(NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME ORDER BY NAME ) SELECT * FROM TEMP_TABLE WHERE COUNT > 1 with절은 동일한 SQL이 반복되어서 사용될 때 성능을 높이기 위해 사용된다. table을 만들지 않고도 table 만든 것과 같은 효과를 내는데, 실제..

category_image
인파_
2021.11.12
(0)