본문 바로가기

Database/SQL4

[SQL] LEFT JOIN, UNION ALL, WITH 작년 10월부터 시작해서 약 4개월 동안 현재 진행중인 프로젝트로 정신없게 보내고 있다. 투입되고 정말 단 하루도 안 바쁜 적이 없었던 것 같은데 이번 프로젝트는 많은 삽질(?)이 동반되었기에 프로젝트가 마무리되면 이후에 회고해보면 좋을 것 같다. 그 전에 프로젝트에서 사용하고 있는 주요 SQL문과 사용 이유를 한번 정리해두고자 한다. ( Oracle, PostgreSQL을 병행해 사용중입니다 ) 1. LEFT OUTER JOIN 먼저 데이터 마트는 팩트 테이블을 중심으로 여러 디멘젼 테이블을 결합하는 형식으로 사용한다. ( 팩트 테이블은 트랜잭션과 유사하게 사실이 기록된 것이며 집계가 되도록 숫자 데이터로 이루어져있는 테이블, 디맨젼 테이블은 참고되는 마스터 데이터로 데이터를 분류하기 위한 속성값으로 .. 2024. 1. 21.
[MySQL] MySQL 서버 구조와 특징 MySQL 서버는 MySQL 엔진 + 스토리지 엔진으로 구분할 수 있다. 스토리지 엔진은 핸들러 API를 만족하기만 하면 MySQL 서버에 추가해서 사용할 수 있다. 해당 글에선 MySQL 서버의 전체적인 구조와 특징을 알아본다. 1. MySQL 전체 구조 (1) MySQL 엔진 -> (2) 핸들러 API -> (3) 스토리지 엔진 (1) MySQL 엔진 : 요청된 SQL 문장 분석, 최적화 커넥션 핸들러, SQL 파서, 전처리기, 옵티마이저로 이루어 짐 쿼리 실행은 대부분 MySQL 엔진에서 이루어짐 1) 쿼리 파서 2) 전처리기 3) 옵티마이저 4) 쿼리 실행기 5) 핸들러 1) 쿼리 파서 SQL 쿼리 문장을 토큰으로 잘게 쪼개는 순서 -> 파스 트리를 만들어 냄 문법 확인 과.. 2023. 3. 27.
[MySQL] 옵티마이저 DBMS에 대해서 입력과 출력에만 집중하는 경우가 많다. 즉, DBMS 서버가 그 결과를 만들기 위해서 내부적으로 무슨 과정을 거쳤는지는 크게 관심을 가지지 않는다. 그런데 AWS 같은 클라우드 환경의 서버들은 자원을 무제한 사용하도록 해주고 사용한 만큼 비용을 가져간다. 컴퓨터 자원이 너무 쉽게 낭비될 수 있는 환경이고 이런 낭비는 결국 비용 증가로 연결될 것이다. 클라우드 서비스 회사와 ORM도구들은 우리가 지불해야 할 비용에 대해서 걱정해주지 않기 때문에 결국 사용자 입장에서 필요한 만큼 지식과 경험을 갖추고 있어야 하는 것이다. - Real MySQL 8.0 (백은빈, 이성욱) 차주부터 Real MySQL 8.0 책으로 스터디를 진행한다. BI 프로젝트를 진행할 때만 해도 화면상에서 최대한 대시보.. 2023. 3. 9.
[Datacamp] SQL Server [Datacamp] Data Analyst with SQL Server (Career Track)​ (1) Introduction to SQL Server ( 🎈 ) (2) Introduction to Relational Databases in SQL (3) Intermediate SQL Server (4) Time Series Analysis in SQL Server Selecting : SELECT Ordering : ORDER BY Filtering : WHERE, HAVING Aggregating : SUM, COUNT, MIN, MAX, AVG Text manipulation : LECT, RIGHT, LEN, SUBSTRING 1. SELECTion Box - TOP () return 5 ro.. 2022. 5. 12.