| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 해외석사준비
- 머신러닝
- 자동화
- 아이펠
- 영국석사
- SQLD
- unity
- 아이펠 리서치
- 해외석사
- 데이터사이언스
- 개발 도서
- ICT 글로벌 인턴십
- n8n
- 제이펍
- 부트캠프
- SQL
- 데이터분석
- 코드트리
- 코딩테스트 준비
- 통계
- 미국석사
- 인턴십 면접
- 해외입시
- 모두의연구소
- 딥러닝
- docker
- 코딩테스트
- 해외유학준비
- OpenAI
- 인공지능
- Today
- Total
목록SQL (7)
Developer Jenny Lim's Blog
출국 전에 취득할 수 있는 자격증은 다 취득하고 가려고 연초부터 부랴부랴 공부했다. 그 중에 정말 힘들었고 제일 오래 공부했던 SQLD도 마침내 합격했다. 거의 웬만한 프로그래밍 언어는 다 공부해봤고 코드도 많이 짜봐서 어렵지 않았는데, 이상하게 SQL만 유독 힘들었다. 이거에 관련해서 토론을 해봤는데, SQL은 비절차적 언어라서 더 그렇게 느껴지는 것 같다. C나 Python는 아무래도 절차적 언어이다보니, 이에 익숙한 개발자 입장에서는 이건 왜 이렇게 쓰는 거지? 생각이 많이 들게 한다. 1. 사용한 교재 SQLD는 ADsP와 더불어 시중에 여러 교재들이 많이 나와있기 때문에 무엇을 선택하든지 상관 없긴 하다. 나는 예전에 사둔 책 (심지어 2026도 아님) 보면서 공부 했는데 어짜피 시험에서 다..
Top N 쿼리 : 상위 N 순위까지 추출하는 쿼리 → 기본적으로 순위 함수(RANK, DENSE_RANK, ROW_NUMBER)를 사용해서 쿼리를 작성할 수 있음 ROWNUM 함수 : 현재 저장된 데이터를 그대로 두고 각 행에 순차적인 번호를 붙여주는 함수테이블의 첫 행부터 차례대로 순회하면서 값을 반환하기 때문에 중간을 건너 뛰고 값을 가져올 수 없음WHERE 절에서 ROWNUM을 사용할 경우, 조건식이 FALSE가 되면 순회를 멈추고 결과를 반환함ROWNUM은 각 행을 반환하면서 값을 반환하기 때문에 ORDER BY가 수행되기 전에 각 행에 번호가 매겨지고, 그 후에 정렬이 수행됨 → 결과가 이상해 보일 수 있음 계층형 데이터 모델 : 각 레코드가 하나의 노드가 되고 노드의 부모-자식 관계를 정의하..
연산자 우선 순위산술 연산자 → 연결 연산자 → 비교 연산자 → ISNULL/LIKE/IN → BETWEEN → NOT 연산자 → AND 연산자 → OR 연산자 SORT MERGE JOIN : 조인의 조건이 되는 컬럼에 인덱스가 없어서 인덱스를 스캔할 수 없거나 대량의 자료를 조인하게 되어 랜덤 액세스 방식이 부담될 경우, 전체 테이블 스캔 방식을 사용하여 조인을 수행함조인 컬럼에 대해 먼저 정렬을 수행한 후 조인을 수행 NESTED LOOP JOIN : 인덱스 스캔을 사용하여 데이터를 랜덤 액세스 방식으로 읽음중첩 루프를 사용한 반복문과 유사한 방식으로 수행되는 조인데이터 양이 많을 경우 많은 디스크 I/O가 발생하여 성능이 느려질 수 있음 HASH JOIN : NESTED LOOP JOIN의 랜덤 액..
WHERE : 특정 조건을 만족하는 행만을 대상으로 연산을 수행함SELECT, UPDATE, DELETE에는 사용할 수 있으나 INSERT에는 사용 불가FROM 절을 먼저 수행하므로 FROM 절에서 정의한 테이블에 대한 별명은 사용 가능그러나 SELECT 절에서 정의한 컬럼에 대한 별명은 사용 불가SELECT 컬럼1 [[, 컬럼2] … ] FROM 테이블1 [[, 테이블2] … ] WHERE 조건식;WHERE 절에서 NULL과 동등/부정 비교는 IS NULL, IS NOT NULL만 사용 가능컬럼 = NULL, 컬럼 ≠ NULL 등 비교 연산자를 사용한 조건식은 제대로 작동 X 비교 연산자 : 두 값이 같은지를 비교하거나 크기를 비교하여 보다 작은지, 더 큰지를 판단하여 참, 거짓을 반환함비교 대상이 단..
데이터 자체는 아무런 가치를 가지지 않지만, 어떤 목적에 따라 가공하여 유용한 정보로 변환하면 그제서야 가치를 가지게 됨 → 정보데이터베이스 : 데이터를 일정한 체계에 따라 통합하여 디스크나 메모리에 저장한 것응용 프로그램에 종속적이지 않도록 일종의 미들웨어 형태로 만든 것자료의 독립성 + 중복 저장의 최소화 + 통합 처리 + 자체적 관리 기능 등의 이점 존재 DBMS : 데이터베이스를 구축하고 관리할 수 있는 기능을 제공하는 시스템 소프트웨어관계형 데이터베이스 : 2차원 구조의 행과 열로 구성된 테이블 형태수학적 이론을 바탕으로 하고 있어 연산 자체를 수학적으로 최적화할 수 있음SQL 통해 데이터로부터 원하는 정보를 쉽게 조회, 가공, 추출 가능Oracle, PostgreSQL, MariaDB, MyS..
데이터베이스의 이상현상 : 모델링된 데이터베이스의 테이블과 관계들이 데이터 입력, 수정, 삭제 과정에서 일관성이 깨지는 문제삽입 이상 : 테이블에 데이터를 삽입할 때 의도하지 않은 정보까지 삽입해야 하는 상황갱신 이상 : 중복 저장되어 있는 데이터 중 하나만 갱신하고 다른 하나를 갱신하지 않을 때 나타나는 데이터 불일치 현상삭제 이상 : 테이블의 특정 데이터를 삭제할 때 의도하지 않은 정보까지 삭제되는 현상 정규화 : 데이터 중복을 최소화하면서 테이블을 보다 잘 조직된 상태로 분해하는 과정정규화를 잘 수행하면 데이터 입력, 수정, 삭제 성능은 향상조회 성능은 조건에 따라 향상 가능 → 근데 대부분 Join이 많이 발생해서 하락Join 때문에 성능 하락할 경우 조회 성능을 올리기 위해 반정규화 수행 정규화..
모델링 : 현실 세계를 대상으로 일종의 모델을 만드는 것모델 : 현실 세계의 사물, 개념 등을 구성 요소로 나누고 이를 일정하게 도식화한 것도식화하는 방법은 약속된 표기법을 따라야 함모델링을 하는 이유 : 업무 흐름 가시화 및 명세화 → 설계, 새갈, 시스템 관리에 사용추상화 : 사물을 있는 그대로 나타내는 것이 아니라 특징을 추려서 단순화하여 나타내는 것 어떤 특징을 어느 정도로 표현할지는 모델링의 목적에 달라짐모델링의 목적은 업무 프로세스의 데이터에 따라 달라짐필요한 수준에서 데이터를 추상화해서 단순하고 명료하게 표현하는 것이 중요함 모델링의 특징추상화 : 대상의 주요 특징을 추출해서 일정한 형식으로 표현함대상을 범주화하여 클래스로 구분하고 공통된 특징을 서술함 → 객체지향 설계의 추상화랑 비슷함단순..
