본문 바로가기

공부 기록/Database

(19)
MongoDB 설치하기 MongoDB 설치 https://www.mongodb.com/try/download/community Try MongoDB Community Edition Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project! www.mongodb.com msi 파일 실행 후 Next > I accept .. 체크한 후 Next > "Custom" 선택 아래의 Browse... 클릭 경로를 C:\mongodb 로 설정하고 OK 클릭 Install ... 선택 해제한 후 Next Install ....
정렬, 집계 함수, 그룹핑 ORDER BY(정렬) 조회 결과를 특정 attribute(s) 기준으로 정렬하여 가져오고 싶을 때 사용한다. 오름차순 정렬은 ASC(default 정렬 방식), 내림차순 정렬은 DESC로 표기한다. SELECT * FROM EMPLOYEE ORDER BY dept_id (ASC), salary DESC; dept_id 순으로 정렬하되, dept_id 그룹 별로는 salary 내림차순으로 정렬된다. aggregate function(집계 함수) 여러 tuple들의 정보를 요약해서 하나의 값으로 추출하는 함수 대표적으로 COUNT, SUM, MAX, MIN, AVG 함수가 있다. (주로) 관심있는 attribute에 사용된다. NULL 값들은 제외하고 요약 값을 추출한다. SELECT COUNT(*) FR..
Join JOIN 두 개 이상의 table들에 있는 데이터를 한 번에 조회하는 것. implicit join & explicit join implicit join : WHERE 절에 join condition을 명시하는 방식. old한 방식이며 가독성이 떨어진다. SELECT D.name FROM employee AS E, department AS D WHERE E.id = 1 and E.dept_id = D.id; explicit join : from 절에 JOIN 키워드와 함꼐 joined table들을 명시하는 방식. SELECT D.name FROM employee AS E (INNER) JOIN department AS D ON E.dept_id = D.id WHERE E.id = 1; inner joi..
Three-Valued Logic Null Null의 의미 unknown : 알 수 없음 unavailable or withheld : 비공개 not applicable : 해당사항 없음 Null의 사용 (X) SELECT id FROM employee WHERE birth_date = NULL; (O) SELECT id FROM employee WHERE birth_date IS NULL; Three-Valued Logic SQL에서 NULL과 비교 연산을 하게 되면 결과는 UNKNOWN이다. UNKNOWN은 TRUE일 수도 있고 FALSE일 수도 있다는 의미 Three-valued Logic : 비교/논리 연산의 결과로 TRUE, FALSE, UNKNOWN을 가진다. 1 = NULL -> UNKNOWN 1 != NULL -> UNKN..
쿼리 안의 쿼리(서브쿼리) 서브쿼리(Subquery) - nested query or inner query - SELECT, INSERT, UPDATE, DELETE에 포함된 query 서브쿼리를 사용한 예시 - ID가 14인 임직원보다 생일이 빠른 임직원의 ID, 이름, 생일을 알고 싶을 때 SELECT id, name, birth_date FROM employee WHERE birth_date < ( SELECT birth_date FROM employee WHERE id = 14); - ID가 1인 임직원과 같은 부서, 같은 성별인 임직원들의 ID, 이름, 직군을 알고 싶을 때 SELECT id, name, position FROM employee WHERE (dept_id, gender) = ( SELECT dept_id,..
DML - 데이터 조작하기 SELECT - 데이터 조회하기 SELECT(DISTINCT) {column_name}(ALIAS) FROM {table_name} [WHERE {attribute} = {value}]; SELECT CONCAT({column_name}, '-', {column_name}) FROM {table_name}; DISTINCT : 중복행을 제거한다. ALIAS : 컬럼의 별칭을 지정한다. CONCAT : 문자열을 결합한다. SELECT * FORM employee WHERE deptno IN (10, 30); SELECT deptno (as) 부서번호, name (as) 부서명 FROM department; - Like 와일드 카드를 사용하여 특정 문자를 포함한 값에 대한 조건을 처리한다. % : 0에서부터..
DDL - Table 생성하기, 목록 및 구조 확인 * MySQL에서는 DATABASE와 SCHEMA가 같은 뜻을 의미한다. Table 생성 CREATE TABLE {table_name}(); * 제약 조건 키워드 (CONSTRAINTS) PRIMARY KEY AUTO_INCREMENT NOT NULL UNIQUE : 중복된 값을 저장할 수 없다. DEFAULT : 디폴드값을 설정할 수 있다. CHECK : 입력할 수 있는 값의 범위 등을 제한한다. TRUE or FALSE로 평가할 수 있는 논리식을 지정한다. FOREIGN KEY : CASCADE / SET NULL / RESTRICT [/ NO ACTION / SET DEFAULT] CREATE TABLE {table_name}( ㅤㅤ{field_name} {type} [NULL | NOT NULL]..
Database 생성, 접속하기 Database 생성 CREATE DATABASE {db_name}; Database 삭제 DROP DATABASE {db_name}; 전체 Database 확인 SHOW DATABASES; 현재 접속되어 있는 Database 확인 SELECT database(); Database 선택, 전환 USE {db_name}; - 데이터베이스를 전환하려면 데이터베이스가 이미 존재해야 하며, 현재 접속 중인 계정이 해당 데이터베이스를 사용할 수 있는 권한이 있어야 한다. Database 접속 - 윈도우에서의 접속 mysql -h{host_name} -u{user_id} -p [{db_name}] [enter] (패스워드 입력) mysql -hlocalhost -uroot -p - 리눅스/맥에서의 접속 ./mysq..