DataBase/MySql
-
MySql - GroupBy 및 ONLY_FULL_GROUP_BY 파헤치기DataBase/MySql 2025. 4. 1. 10:26
GROUP BY에 대한 설명GROUP BY는 SQL에서 데이터를 그룹화하여 집계(aggregation) 함수를 적용할 때 사용됩니다. GROUP BY는 데이터를 하나의 기준으로 묶고, 각 그룹에 대해 계산을 수행하도록 합니다. 예를 들어, 부서별 평균 급여나, 제품별 총 판매액 등을 계산할 때 사용됩니다.기본 구문SELECT 컬럼명, 집계함수(컬럼명)FROM 테이블명GROUP BY 그룹화할_컬럼;그룹화할_컬럼: 데이터를 그룹화할 기준이 되는 컬럼입니다.집계함수: COUNT(), SUM(), AVG(), MAX(), MIN()과 같은 함수가 해당 그룹에 대해 계산을 수행합니다.예시: 부서별 평균 급여 구하기SELECT department_id, AVG(salary)FROM employeesGROUP BY ..
-
MySql - OUTER JOIN(LEFT, RIGHT)DataBase/MySql 2024. 10. 1. 23:50
OUTER JOIN(LEFT, RIGHT) OUTER JOIN은 SQL에서 테이블 간 데이터를 결합할 때 공통된 열을 기준으로 데이터를 조회하는 방법 중 하나입니다. OUTER JOIN은 두 가지 종류로 나눌 수 있습니다: LEFT OUTER JOIN과 RIGHT OUTER JOIN. 이들은 기준이 되는 테이블의 모든 행을 반환하되, 반대쪽 테이블에 해당하는 데이터가 없을 경우 NULL을 반환합니다.1. LEFT OUTER JOINLEFT OUTER JOIN은 왼쪽 테이블의 모든 데이터를 기준으로 조인합니다. 오른쪽 테이블에서 일치하는 값이 있으면 그 데이터를 반환하고, 일치하는 값이 없으면 NULL로 표시됩니다.LEFT OUTER JOIN 기본 구조SELECT A.열1, A.열2, B.열1, B.열2F..
-
MySql - INNER JOINDataBase/MySql 2024. 10. 1. 23:42
INNER JOIN INNER JOIN은 두 개 이상의 테이블에서 공통된 열을 기준으로 데이터를 결합하는 SQL 조인 방식입니다. INNER JOIN은 조인 조건을 만족하는 행만 결과로 반환하며, 조건에 맞지 않는 행은 제외됩니다. 주로 두 테이블 간에 공통된 필드를 기준으로 데이터를 조회할 때 사용됩니다.INNER JOIN 기본 구조SELECT A.열1, A.열2, B.열1, B.열2FROM 테이블A AINNER JOIN 테이블B BON A.공통열 = B.공통열;예시두 테이블 employees와 departments가 있다고 가정해보겠습니다.employees 테이블emp_idemp_namedept_id1John1012Jane1023Bob1034Alice102 departments 테이블dept_idde..
-
MySql - Case문 간단정리DataBase/MySql 2024. 8. 5. 22:58
CASE문 개요MySQL의 CASE문은 SQL 표준의 일부로, 조건에 따라 서로 다른 값을 반환할 수 있는 제어 흐름 함수입니다. CASE문은 주로 SELECT, UPDATE, DELETE 쿼리에서 사용되며, 복잡한 조건 논리를 단순화할 수 있습니다. CASE문의 기본 문법CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ... ELSE 결과N END 각 조건이 참이면 해당 조건에 해당하는 결과가 반환되며, 조건이 모두 거짓이면 ELSE 절의 결과가 반환됩니다. ELSE 절은 선택 사항이며, 생략할 경우 조건이 모두 거짓일 때 NULL을 반환합니다.CASE문의 사용 예시예시 1: 단순 CASE문다음은 학생의 성적에 따라 등급을 매기는 예제입니다.SEL..
-
MySql - GROUP BY, ORDER BY, HAVING 간단 정리DataBase/MySql 2024. 8. 1. 23:21
GROUP BY 함수 - 테이블의 행들을 특정 기준으로 그룹화할 때 사용 기본 적인 사용 방법은 아래와 같다.SELECT column1 , aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1; 실제 테이블 예시SELECT SupplierID , CategoryId , AVG(Price) FROM Products GROUP BY SupplierID, CategoryId 예시 1. employees 테이블에서 department별로 직원 수를 계산합니다. SELECT department, COUNT(*) AS employee_count FROM emplo..
-
MySql - Count, Sum 함수(AVG, MIN, MAX)DataBase/MySql 2024. 8. 1. 22:59
1. Count Count : 행, 데이터 레코드의 갯수를 반환 Table - IDNameAge1A12A23B34C45NULLNULL이와같이 test테이블이 있다고 가정해보자. 1. COUNT 함수를 사용하는 경우 *을 경우 NULL값도 포함 하여 값을 반환한다.SELECT COUNT(*) FROM test; ===> 5 2. COUNT함수를 사용하는경우 특정 컬럼을 입력한다면 NULL값을 제외한 값을 반환한다.SELECT COUNT(Name) FROM test; ===> 4 3. COUNT함수를 사용하는 경우 DISTINCT를 사용한다면 중복값을 제외 한 값들을 반환한다.SELCT COUNT(DISTINCT Name) FROM test; ===> 3 (A,B,C) 2. SUM T..
-
Mysql - 기타 함수들(조건문) if, ifnullDataBase/MySql 2023. 10. 12. 16:07
기타 함수들(조건문) 형식 설명 IF(조건, T, F) 조건이 참이라면 T 거짓이라면 F SELECT IF (1 > 2, '1는 2보다 크다.', '1은 2보다 작다.'); ========실행결과======== 1은 2보다 작다. 조건이 복잡한 경우에는 CASE문을 사용한다. SELECT CASE WHEN -1 > 0 THEN '-1은 양수다.' WHEN -1 = 0 THEN '-1은 0이다.' ELSE '-1은 음수다.' END; ========실행결과======== -1은 음수다. IFNULL 형식 설명 IFNULL(A,B) A가 NULL일시 B를 출력 SELECT IFNULL('A', 'B'), IFNULL(NULL, 'B'); ========실행결과======== A B
-
Mysql - 시간,날짜 관련 함수(2)DataBase/MySql 2023. 10. 12. 16:03
시간,날짜 관련 함수(2) 함수 설명 DATE_FORMATE 시간/날를 지정한 형식으로 반환 형식 설명 %Y 년도 4자리 %y 년도 2자 %M 월 영문 %m 월 숫자 %D 일 영문(1st, 2st...) %d, %e 일 숫자 (01~31) %T hh:mm:ss %r hh:mm:ss AM/PM %H, %k 시 (~23) %h, %l 시 (~12) %i 분 %S, %s 초 %p AM/PM SELECT REPLACE( REPLACE( DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %p %h시 %i분 %초'), 'AM', '오전' ), 'PM', '오후' ) ======실행결과======= 2023년 10월 12일 오전 07시 00분 초 함수 설명 STR_TO_DATE(S,F) S를 F형식으로 해석하..