본문 바로가기

데이터베이스3

[DB] INDEX란? (with. 클러스터링 & 논-클러스터링) 인덱스를 사용하는 이유 SELECT * FROM customer WHERE first_name = 'Minsoo';first_name이 Minsoo인 튜플을 찾기 위해 full Scan이 진행된다.사용 이유조건을 만족하는 튜플을 빠르게 조회빠르게 정렬(order by)하거나 그룹핑(group by)하기 위해인덱스를 거는 방법SELECT * FROM player WHERE name = 'Sonny'SELECT * FROM player WHERE team_id = 105 AND backnumber = 7;위 조회 쿼리에서 사용할 인덱스를 걸어보자CREATE INDEX player_name_idx ON player (name)CREATE UNIQUE INDEX team_id_backnumber_idx ON p.. 2024. 7. 21.
[DB - SQL] IN과 EXISTS의 차이 부속 질의문을 이용하여 검색할 때, SQL에선 여러 연산자를 지원한다. 이 중 IN과 EXISTS에 대해 혼란이 생겨 글을 정리한다. 정의 IN 부속 질의문의 결과 값 중 일치하는 것이 있으면 검색 조건이 참 EXISTS 부속 질의문의 결과 값이 하나라도 존재하면 검색 조건이 참 정의보단 실행순서에서 차이가 존재한다. 실행순서 IN 서브 쿼리 결과값을 메인 쿼리에 대입하여 비교 후 결과 출력 EXISTS 메인 쿼리 결과값을 서브 쿼리에 대입하여 비교 후 결과 출력 IN : 서브 쿼리 -> 메인 쿼리 EXISTS : 메인 쿼리 -> 서브 쿼리 이제 예를 들어보자 SELECT 고객이름 FROM 고객 WHERE EXISTS ( SELECT * FROM 주문 WHERE 주문일자 = '2022-03-15' AND.. 2024. 4. 5.
[DB] 관계 데이터 연산 관계 데이터 연산 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행 [ 관계 데이터 연산 종류 ] 1. 관계 대수 : 데이터 처리 과정을 순서대로 기술 2. 관계 해석 : 데이터가 무엇인지만 기술 (순서 상관X) 사용 이유 :데이터 유용성 검증 쿼리를 이용하여 모든 질의 기술 가능 (관계적으로 완전) 관계 대수 - 일바 집합 연산자 4개 + 순수 관계 연산자 - 순서대로 기술하는 절차 언어 - 폐쇄 특성: 피연산자, 연산결과 모두 릴레이션 일반 집합 연산자 (Set Operation) 합집합, 교집합, 차집합 (카티션 프로덕트는 X) 는 두 릴레이션(피연산자)가 모두 합병 가능해야함 차수 같음 + 속성의 도메인 같음 합집합 RUS : R에 속하거나 S에 속하는 모든 튜플 중복되는 튜플은 하나.. 2024. 3. 30.