1. 상위 N개 레코드 조회 : LIMIT SELECT {COL1},{COL2} FROM {TABLE} ORDER BY {CONDITION} LIMIT 1; 2. 날짜 데이터 정보 추출 함수 결과값 YEAR() 연도 MONTH() 월 DAY() 일 HOUR() 시 MINUTE() 분 SECOND 초 SELECT YEAR(DATETIME) FROM {TABLE}; 3. DATETIME 형식 : DATE_FORMAT() 문제에서 DATETIME 형식을 정해주는 경우가 많기 때문에 꼭 외워둬야 하는 함수 DATE_FORMAT(시간값, 원하는 포맷형식) DATE_FORMAT(NOW(), ‘%Y-%M-%d’) 날짜 표기 FORMAT DESCRIPTION %Y 4자리 표기 (ex. 2023) %y 2자리 표기 (e..
GROUP BY vs PARTITION BY WINDOW FUNCTION은 GROUP BY와 비슷하게 데이터를 그룹화하여 집계해준다. GROUP BY - 집계된 결과만 보여준다. 윈도우 함수 - 기존 데이터 + 집계된 값 해당 데이터를 가진 테이블이 있을 때, GROUP BY를 사용한 경우 select employee_id, sum(price) from sellings group by employee_id; 윈도우 함수를 사용한 경우 select car_id, employee_id, sum(price) over (partition by employee_id) from sellings order by car_id; 기본 형태 함수(함수_적용_열) OVER (PARTITION BY 그룹열 ORDER BY 순..
1. CASE WHEN SELECT CASE WHEN {조건 1} THEN {반환값1} WHEN {조건 2} THEN {반환값2} ELSE {반환값3} END FROM {TABLE}; - WHEN, THEN은 쌍을 이루고 있어야 한다. - WHEN, THEN은 여러 번 사용이 가능하다. - 끝에 'END'를 꼭 적어주어야 함. - SELECT, FORM, WHERE 절에 들어갈 수 있다. ORDER BY 절에 사용한 예제 SELECT customerName, state, country FROM customers ORDER BY ( CASE WHEN state IS NULL THEN country ELSE state END); https://www.mysqltutorial.org/mysql-case-fun..
JOIN Join 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 조인이 필요 일반적으로 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 조인 조건은 일반적으로 각 테이블의 PK 및 FK로 구성된다. JOIN의 종류 INNER JOIN OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN JOIN 조건의 명시에 따른 구분 NATURAL JOIN CROSS JOIN(FULL JOIN, CARTESIAN JOIN) JOIN 시 주의 조인의 처리는 어느 테이블을 먼저 읽을지 결정하는 것이 중요 (처리할 작업량이 상당히 달라진다.) INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 조인의 순서를 조절해서 다양한 방법으로 최적화를 수행할..
코딩 테스트에서는 조회 문제가 나오기 때문에 DML에서 기본적인 데이터 검색의 형식에 대해 정리해보겠다. 이렇게 세가지 테이블이 있다고 가정 1. 기본 구조 기본 검색 SELECT 열_리스트 FROM 테이블리스트 WHERE 조건; 2. 일반 형식 - all, distinct 연산자 SELECT [All | DISTINCT] 열리스트 FROM 테이블 리스트 GROUP BY 열리스트 (HAVING 조건) ORDER BY 열리스트 [ASC | DEDC]; 3. 검색 결과에서 레코드의 중복 제거 - distinct → 중복 제거 SELECT DISTINCT DEPT FROM STUDENT; 4. 테이블의 열 전부 검색 → asterisk SELECT * FROM STUDENT; 5. 조건 검색 - 4학년인 컴퓨..