[DB/MySQL] WITH ROLLUP, PIVOT 구조 및 활용방법
·
DB/이론 및 문법
해당 글에서는 WITH ROLLUP, PIVOT에 대한 구조 및 활용방법에 대해 알아봅니다.1) WITH ROLLUP💡 WITH ROLLUP- MySQL에서 GROUP BY 절과 함께 사용되는 확장 기능으로 집계된 데이터에 대해 소계 및 총 합계를 계산할 수 있게 해 줍니다.- 이를 사용하면 그룹별로 데이터의 합계뿐만 아니라, 전체 데이터의 합계도 계산할 수 있습니다. 이는 보고서나 데이터 분석에서 매우 유용하게 사용됩니다. 1. WITH ROLLUP 형식💡 WITH ROLLUP 형식- SELECT 문에서 일반 컬럼과 집계함수(SUM, COUNT, AVG 등)를 사용하고 지정된 그룹별로 데이터를 집계한 후에 최종적으로 전체 데이터의 합계를 추가적으로 계산합니다.SELECT column1, col..
[DB/MySQL] WITH ~ [RECURSIVE] CTE(Common Table Expression) 이해하기
·
DB/이론 및 문법
해당 글에서는 WITH ~ [RECURSIVE] CTE를 이용하는 방법에 대해서 알아봅니다 1) CTE(Common Table Expression)💡 CTE(Common Table Expression) - SQL에서 사용되는 기능으로 복잡한 쿼리를 간결하게 작성할 수 있게 해주는 임시 결과 집합입니다. - WITH 구문을 사용하여 쿼리 내에서 한 번 정의되며, 그 후에는 쿼리의 여러 부분에서 여러 번 ‘재사용’될 수 있습니다. - 쿼리의 가독성을 향상하고, 복잡한 조인과 집계 로직을 간결하게 표현할 수 있도록 돕습니다.CTE 종류사용목적일반 CTE단순히 복잡한 쿼리를 단순화하는 데 사용재귀 CTE쿼리가 자기 자신을 참조하고 반복적으로 실행되는 것을 가능하게 해서, 계층형 데이터를 쉽게 쿼리할 수 있게 해..
[MySQL/Short] 날짜(일자/시간) 컬럼 범위 조회하기 : YEAR, MONTH, DAY, DATE, HOUR, MINUTE, SECOND, TIME
·
DB/Short SQL문
해당 글에서는 MySQL에서 날짜 데이터를 각각 상황별 조회하는 방법에 대해 알아봅니다.1) 일자 별 조회 💡 일자 별 조회- 해당 부분에서는 ‘2013-12-22 11:30:00‘와 같은 데이터 타입에서 ‘일자별로 조회’를 수행합니다. 1. 데이터 확인💡 데이터 확인- 아래와 같은 ‘YYYY-MM-DD HH24:MI:SS’ 형태의 데이터가 존재합니다.SELECT * FROM ANIMAL_OUTS;  2. 일자 별 조회 : 년도(YEAR 함수)💡 일자 별 조회 : 년도(YEAR 함수)- 연도(year)를 기준으로 조회를 수행합니다. 💡 단일 연도 조회SELECT * FROM ANIMAL_OUTSWHERE YEAR(DATETIME) = '2013' ;   💡 범위 연도 조회SEL..
[DB/Short] MySQL SQL Function : 랜덤 숫자 만들기
·
DB/Short SQL문
해당 글에서는 SQL Function을 구성하여 랜덤한 숫자를 반환하는 방법에 대해 알아봅니다. 1) 종료 범위만 존재하는 숫자 반환 💡 종료 범위만 존재하는 숫자 반환 - 1에서부터 시작해서 최대범위를 지정하는 랜덤 숫자를 만드는 함수를 구성합니다. 변수/파라미터 명 분류 타입 설명 _range 파라미터 INT 랜덤한 숫자의 최대 범위를 지정하는 파라미터 v_ret 변수 INT 최종 결과값을 반환하는 변수 💡 함수 설명 1. v_ret 결과값 내에 rand() 함수를 통해 랜덤 한 숫자를 반환받아 종료 범위를 곱한 뒤 최종 1을 더합니다. (* 1을 더하는 이유는 0의 값이 나오는 경우 최소값 1을 유지하기 위해 더 합니다) CREATE FUNCTION `f_randscore1` (_range int)..
[DB/Short] MySQL SQL Function : 문자열 내에 랜덤 문자열 추출하기
·
DB/Short SQL문
해당 글에서는 SQL Function을 구성하여 랜덤 한 문자열 배열 내에 값 반환 방법에 대해 알아봅니다. 1) 랜덤 문자열 만들기 : SQL Function 내의 값 지정 방식 💡 랜덤 문자열 만들기 : SQL Function 내의 값 지정 방식 - 랜덤으로 추출할 문자열에서 구분자(,)를 두어서 문자열을 생성하여 그 중에 문자열을 반환받는 함수를 구성해 봅니다. - 해당 방식은 배열 형태를 가지는 문자열을 SQL Function 내부에 선언하여 사용하는 방식입니다. 파라미터/변수 명 분류 타입 설명 v_subject_arr 변수 VARCHAR(125) 랜덤으로 수행할 배열을 가지고 있는 변수 v_rand_index 변수 INT 랜덤 인덱스 값을 저장하는 변수 v_ret 변수 VARCHAR(31) 최..
[DB/Short] MySQL SQL Function : 랜덤 문자, 랜덤 이름 만들기
·
DB/Short SQL문
해당 글에서는 SQL 함수를 이용하여 주어진 문자열 내에서 랜덤 한 문자열을 반환하는 방법에 대해 알아봅니다. 1) 문자열 내의 랜덤한 하나의 문자 반환 💡 문자열 내의 랜덤한 하나의 문자 반환 - 파라미터로 전달받은 문자열 내에서 랜덤한 하나의 문자를 반환하는 함수를 구성해 봅니다. 💡 f_rand1 - 문자열 중에서 하나의 단어를 랜덤으로 반환해 주는 함수입니다. 1. 파라미터로 받은 값(_str)의 길이를 반환하는 변수(v_len)를 선언합니다. 2. 결과값(v_ret)으로 substring 함수를 통해 파라미터로 받은 값을 rand() 함수를 통해서 하나의 값만 반환받습니다. 3. 최종결과값(v_ret)을 반환합니다. 변수/파라미터 명 분류 타입 설명 _str 파라미터 VARCHAR(255) 하나..
[MySQL/오류노트] Solved - ERROR 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled
·
DB/오류노트
해당 글에서는 MySQL에서 발생하는 문제를 해결하기 위한 해결방법에 관련된 글입니다.1) 문제점💡 문제점- MySQL Workbench 내에서 Function을 생성하는 중에 아래와 같은 에러가 발생하였습니다.ERROR 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable) 💡 오류 발생 SQL문- 아래와 같이 정상적으로 구성이 된 함수에서 아래의 오류가 발생하였습니다.CREATE FUNCTION `..
[MySQL/오류노트] Solved - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
·
DB/오류노트
해당 글에서는 MySQL에서 발생하는 문제를 해결하기 위한 해결방법에 관련된 글입니다.1) 현상 확인💡 현상 확인- homebrew를 통해서 MySQL을 설치했고 루트 계정으로 로그인하려고 할 때 아래와 같은 문제가 발생하였습니다.     2) 해결 방법💡 해결방법- homebrew service로 MySQL이 백그라운드에서 실행중인지를 확인합니다.- 현재는 백그라운드에서 실행이 되지 않기에 수행하도록 명령어를 입력합니다.   💡 homebrew를 이용하여 MySQL 서비스를 실행하는 명령어를 수행하고 잘 되고 있는지 확인합니다.# MySQL 서비스 시작$ brew services start mysql# MySQL 서비스 시작 확인$ brew servives list   3) 결과 확인💡 결과 확..
[DB/MySQL] MySQL 8.0 초기 환경 세팅 및 최초 구성 방법 : MacOS
·
DB/환경설정
해당 글에서는 MySQL을 최초 설치하고 GUI 툴인 workbench를 통해서 연결하여 간단한 테이블을 만드는 방법에 대해 이해를 돕기 위해 작성한 글입니다. 1) MySQL Workbench 설치 💡 MySQL Workbench 설치 - MySQL Workbench는 데이터베이스를 시각적으로 관리할 수 있는 GUI 도구입니다. 1. 아래 사이트에 접속하여 workbench를 다운로드합니다. 💡 아래 사이트에 접속하여 workbench를 다운로드합니다. - M1 프로세서를 사용하고 있어서 macOS(ARM)을 설치합니다. MySQL :: Download MySQL Workbench Select Operating System: Select Operating System… Microsoft Windows ..
[DB/Short] MySQL : 집계함수로 얻은 값을 조건절에서 사용하는 경우 -서브쿼리, HAVING
·
DB/Short SQL문
해당 글에서는 MySQL에서 집계함수로 얻은 값을 조건절에서 사용하는 경우에 대해 알아봅니다 💡 [참고] 해당 문제를 참고하였으며, 해당 사용방법을 확인하실 수 있습니다. 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1) 예시 확인💡 해당 문제는 아래와 같으며 이를 기반으로 각각 사용하는 경우를 확인해봅니다. 2) 서브쿼리를 이용한 방법💡 서브쿼리를 이용한 방법 - 서브쿼리를 이용하여 결과를 임시로 저장하고 서브쿼리를 조건절에 참조할 수 있습니다. 💡 예시 확인 - 서브쿼리를 이용하여 결과를 임시로 저장(t2)하며 이를 참조하여서 결과를 조건절(WHERE)..