데이터베이스 (7) 썸네일형 리스트형 [MongoDB] MongoDB 명령어 기초 다지기(mongo명령어 안 될 때) 저번 포스트에서 mongod 명령어를 통해 어찌저찌 서버실행까지는 했다. 데이터베이스는 CLI, GUI 두 가지 도구를 통해 다룰 수 있는데 GUI는 mongoDB를 설치할 때 함께 설치했던 Compass를 통해서, CLI는 mongo shell을 통해서 cmd창에서 다룰 수 있다. 다른 블로그를 참고할 때 cmd창에 mongo명령어를 실행하면 된다고 했지만 나는 죽어도 안나왔는데, 그 이유가 환경변수에 등록해놨던 bin폴더에는 mongo.exe파일이 존재하지 않았기 때문이다,, 알고보니,mongo는 MongoDB 버전 4.4 이전까지의 MongoDB 셸 클라이언트 도구였고, 4.4버전 이후부터는 mongosh가 새롭게 도입되어 공식적으로 권장되는 도구였다. 그래서 mongo가 설치파일에 포함되어있지 않.. [MongoDB] MongoDB을 사용해보자(설치, 환경변수, 실행) DB를 사용하는 방법은 2가지가 있다. 1. CLI(Command Line Interface) - 터미널을 이용해 관리하는 방법 2. GUI( Graphical User Interface) - 시각적인 편의를 제공하는 툴 이전 프로젝트에서는 heidiSQL(MariaDB), MySQL Workbench(MySQL) 을 사용했었다. 그래서 본 프로젝트에서도 아마 compass를 위주로 진행하게 되겠지만 이번 프로젝트를 하며 CLI를 사용해서 관리하는 방법을 조금이라도 익혀보고자 한다. 1. 설치를 해보자 MongoDB는 Community Edition과 Enterprise Edition 두 가지 버전이 존재한다 Enterprise Edition은 보안 및 고급 기능, 지원 등을 필요로 하는 엔터프라이즈 환.. [SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) SQL의 윈도우 함수에는 다양한 것이 있는데, 그 중에서 전체 레코드 중 상위 n 개를 선택하는 함수에 대해 알아보자 함수를 사용하는 방법과 위치에 조금씩 차이가 있지만 기본적인 기능은 동일하다. MySQL - LIMIT -- 학생테이블의 전체 데이터에서 맨 위부터 10개의 레코드를 조회 -- 전체 데이터를 select 한 후에 사용 SELECT * FROM student LIMIT 10; Oracle - ROWNUM / FETCH FIRST -- 학생테이블의 전체 데이터에서 10개까지의 행을 조회 -- where절에 조건을 주는 방식으로 사용 SELECT * FROM student WHERE ROWNUM [SQL] NOT EXISTS NOT EXISTS 주로 서브쿼리와 함께 사용되며 서브쿼리의 결과가 존재하지 않을 때 해당 조건을 만족하는 행을 검색하는 데 사용됨 (= 서브쿼리에 데이터가 존재하지 않을 경우 데이터가 조회된다.) 예를 들어, 주문(Order) 테이블에서 아직 발송되지 않은 주문을 선택하는 SQL 쿼리를 작성할 때, SELECT OrderID, CustomerID FROM Orders WHERE NOT EXISTS ( SELECT 1 FROM Shipments WHERE Shipments.OrderID = Orders.OrderID ); 여기서 SELECT 문에 1을 사용하면 해당 테이블의 개수만큼 1로 된 행을 출력 1은 TRUE를 의미하며 값의 존재유무(조건을 만족하는 결과가 있는지 여부)가 더 중요하기 때문에 간편.. [SQL] 데이터베이스의 JOIN 0. JOIN 관계형 데이터베이스에서 두 개 이상의 테이블을 연결하고 관련된 데이터를 결합하는 데 사용되는 연산 1. INNER JOIN 두 개 이상의 테이블을 연결하고, 두 테이블 간에 일치하는 행만 반환 2. OUTER JOIN INNER JOIN의 반대 연산으로 두 개 이상의 테이블을 연결하고 일치하지 않는 행도 포함하여 결과를 반환하는 연산 2-1. LEFT OUTER JOIN 왼쪽 테이블의 모든 행을 유지하고 오른쪽 테이블에서 일치하는 행이 있는 경우에만 오른쪽 테이블의 해당 행을 가져옴 일치하지 않는 경우에는 NULL 값으로 채움 2-2. RIGHT OUTER JOIN LEFT OUTER JOIN의 반대개념. 오른쪽 테이블의 모든 행을 유지하고 왼쪽 테이블에서 일치하는 행이 있는 경우에만 해당.. 데이터베이스의 함수 1. 데이터베이스 함수 데이터베이스에서 데이터를 처리, 변환, 계산하고 검색하기 위해 사용되는 기능 시스템이 제공하는 내장함수와 사용자가 직접 정의하는 함수로 나뉨 2. 내장함수 데이터베이스 시스템 자체에 내장되어 있는 함수로, 기본적인 데이터 조작 및 변환 작업을 수행 3. 사용자 정의 함수 데이터베이스 사용자가 직접 정의하고 구현한 함수로, 특정 비즈니스 논리를 수행하는 데 사용 4. 단일 행 함수 단일 행 함수는 각 행에 대해 독립적으로 작동하며, 결과를 해당 행에 반환 -- 문자열을 대문자로 변환하는 단일 행 함수 (Oracle) SELECT UPPER('hello') FROM dual; 5. 다중 행 함수 다중 행 함수는 여러 행을 대상으로 작동하며, 결과를 하나의 값을 반환합니다. 주로 서브쿼.. 무결성과 제약조건 무결성이란 ? 데이터베이스에서 데이터의 정확성, 또는 유효성을 의 제약조건이란 ? 데이터베이스 상태가 만족시켜야 하는 조건, 무결성을 보장하기 위한 규칙과 제약사항 종류 개체 무결성 기본키로 지정된 속성은 null이나 중복된 값을 가질 수 없음 참조 무결성 외래키 값은 참조하는 릴레이션의 기본키값이어야 함(null 허용) 도메인 무결성 속성들의 값은 정의된 도메인에 속한 값이어야 함 고유 무결성 기본키가 있는 테이블이라면 각 튜플이 가지는 속성값들은 서로 달라야 함 null 무결성 릴레이션의 특정 속성 값은 null이 될 수 없음(not null로 정의했다면) 이전 1 다음