본문 바로가기

반응형

Oracle

(9)
[DB] group 함수 vs window 함수 ✅ 1. 정의🔹 그룹 함수 (GROUP FUNCTION)GROUP BY 절과 함께 사용되어 데이터를 그룹 단위로 묶고, 각 그룹에 대해 집계값을 계산합니다.대표 함수: SUM(), AVG(), MAX(), MIN(), COUNT()🔹 윈도우 함수 (WINDOW FUNCTION)OVER() 절과 함께 사용되어 전체 데이터를 유지한 채 각 행을 기준으로 집계, 순위, 누적값 등을 계산합니다.대표 함수: ROW_NUMBER(), RANK(), DENSE_RANK(), SUM() OVER, LAG(), LEAD()✅ 2. 사용하는 이유이유그룹함수윈도우 함수데이터를 요약/집계하고 싶을 때✅❌각 행을 유지하면서 분석 정보 추가❌✅순위/누적합/이전 값/비교 분석❌✅필터링 없이 평균값 등 비교❌✅✅ 3. 사용 시기..
[mysql] 왕초보를 위한 index 설정 인덱스란?인덱스는 테이블에서 원하는 데이터를 빠르게 조회하기 위한 자료구조입니다.SELECT 성능을 향상시키는 데 유용하지만, INSERT/UPDATE/DELETE 시에는 인덱스 갱신 비용이 발생해 성능에 부담이 될 수 있습니다.인덱스는 단일 컬럼 기준으로도 만들 수 있고, 여러 컬럼을 조합한 복합 인덱스로도 설정할 수 있습니다.옵티마이저란?옵티마이저는 SQL 실행 계획을 수립하는 MySQL 내부 엔진입니다. 하나의 쿼리를 다양한 방식으로 실행할 수 있을 때, 가장 효율적인 경로를 선택하는 역할을 합니다.주요 역할어떤 인덱스를 사용할지 선택테이블 읽기 순서 결정JOIN 방식 선택 (예: Nested Loop)Index Merge 적용 여부 판단예시SELECT * FROM users WHERE age = ..
[DB] MySQL에서 'a' = 'a '가 true로 평가된다? https://techblog.woowahan.com/2559/?fbclid=IwAR2IWLFLA6auE1lQYxkAwVYRh6k9O27taGkF7eICQmtoLDYjLvI1sZkgvTQ MySQL에서 ‘a’ = ‘a ‘가 true로 평가된다? | 우아한형제들 기술블로그 {{item.name}} DB 알못의 어떤 리서치 개요 안녕하세요 기계인간 이종립입니다. FC플랫폼개발팀에서 배민찬 백엔드를 개발하고 있습니다. DB알못인 저는 업무 중에 우연히 MySQL에서 'a' = 'a '의 결과가 techblog.woowahan.com https://dev.mysql.com/doc/refman/5.6/en/char.html MySQL :: MySQL 5.6 Reference Manual :: 11.3.2 The ..
[DB] Materialized View (구체화 뷰/ 물리적 뷰) 0. Materialized View(MView) 란 A pre-computed table comprising aggregated or joined data from fact and possibly dimension tables. Also known as a summary or aggregate table. 원천 테이블이나 조인된 테이블에서 집계되거나 결합된 데이터로 구성된 미리 계산된 테이블입니다. 요약 또는 집계 테이블이라고도 합니다. 1. Materialized View 특징? 물리적으로 존재하는 View Data 저장공간 차지 Oracle8 i 이후 사용 가능 (mysql/mariadb 기능 없음) 합계함수 등을 사용하는 자주 사용하는 쿼리를 구체화 뷰로 많이 만든다. (요약 테이블) 실행 전에 ..
[DB] view (view/MView/snapshot) 0. What is view? 뷰란? select 문으로 만들어진 논리적인 테이블 즉,가상 테이블?데이터?로 생각하면 됩니다. oracle, mysql, maria db 등 기본적으로 제공을 해주는 듯 하다. view 특징 저장공간 안먹음 select절로 이루어졌기 때문에 참조하는 테이블의 값이 바꼈을 경우 같이 변경된다. select 절 돌리는거랑 성능 거의 비슷 (즉각적으로 결과값 안나옴) (위와같은 이유로) 인덱스 잘 타게 해놔야함 (위와같은 이유로) 그룹함수 등 쓰면 등짝 맞을 수 있음 초보자한테 잘못 알려줬다가 피날 수 있음 1. 뷰 생성 (create view) USE DB명; -- 사용할 DB명 CREATE VIEW [view_name] AS SELECT t.test_column1 AS te..
[DB] 문자열 연결 / 이어붙이기 1. Oracle : || - SELECT 'A' || 'B' FROM TBL 2. mssql : + - SELECT 'A' + 'B' FROM TBL 3. MariaDB : CONCAT() 서식 : CONCAT(str1, str2, ...) https://m.blog.naver.com/sensate1024/220631738438 [MariaDB] 문자열 연결 오랜만에 글 올리네요. 문자열 연결하는 방식이 데이타베이스마다 틀린것 같군요. Oracle, Mssql, Maria... blog.naver.com
[ORACLE] 힌트 HINT /*+ materialize */ 원본 쿼리에 위 힌트절을 사용 후 select * from table(dbms_xplan.display_cursor(null, null, 'allstats advanced last')); 이거 해보시고 Predicate information 보심 실제 쿼리 변환돼서 나오는 조건절 확인 된다고 한다.. 나중에 실험해보자
[mysql/maria] upsert (insert /update) upsert 라는 기능이 있습니다. (있으면 update 없으면 insert) 버전에 따라서 지원을 안할 경우 트리거를 이용하여 할수도 있으나 버전이 된다면 아래와 같은 명령어로 사용할 수 있습니다. (test해보지 않아 문법이 틀릴 수 있습니다. 자세한 사항은 Docs를 참조해주세요.) (버전에 따라 명령어가 실행되지 않을 수 있습니다. 적용되는 버전은 Docs를 참조해주세요.) t1 ---------------- a | b | c | ---------------- 1 | 2 | 3 | a unique key insert / update INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; or UPDATE t1 SET c=c+1 W..

반응형