SQL25 [DB] 인덱스 간단히 개념잡기 인덱스(Index)란? 인덱스는 데이터테이블의 검색 속도를 향상시키기 위한 자료구조이다. 테이블에서 원하는 정보를 한 테이블 내에서 검색하면 시간이 오래 걸리기 때문에 사전에 인덱스를 생성하여 빠르게 조회할 수 있다. 인덱스 직관적으로 이해하기 index(색인)은 책의 목차를 생각하면 된다. 국어사전처럼, 매우 두꺼운 책에 목차가 없다면? 우리는 모든 페이지를 하나하나 다 읽어가면서 정보를 찾아야 할 것이다. 하지만, 색인이 있다면 우선 색인 테이블에서 해당 정보를 찾아 범위를 축소 시키고, 그 범위 내에서만 해당 정보를 찾으면 될 것이다. 인덱스의 장점과 단점 장점 - 테이블을 조회하는 속도, 그리고 성능을 향상시킬 수 있다. - 이에 따라 시스템에 가해지는 부하를 줄일 수 있다. 단점 - 인덱스를 관.. 2021. 8. 23. [DB] Key 정리 Key란? 데이터베이스에서 검색이나 정렬을 수행할 시 tuple을 구분할 수 있는 attribute (attribute는 '특성' 정도로 이해하면 편하다) Key의 종류 - 후보키 - 기본키 - 대체키 - 외래키 - 슈퍼키 1) 후보키 후보키는 릴레이션을 구성하는 속성들에서, 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합이다. 모든 릴레이션에는 하나 이상의 후보키가 존재하게 된다. 이 때, 후보키는 다음의 특성을 만족해야 한다. 유일성 : 하나의 키 값으로는 하나의 튜플만을 유일하게 찾아낼 수 있어야 한다. 최소성 : 모든 레코드들을 유일하게 찾아내는데에 꼭 필요한 속성만으로 구성되어야 한다. Remark. 슈퍼키 슈퍼키는 유일성은 만족되나, 최소성이 만족되지 않는 경우를 뜻한다. 예를 들어,.. 2021. 8. 18. [SQL] Having 절 Group by와 함께 쓰이는 having절. Having 절이란, Group에 제한 조건을 거는 것이다. Where vs Having Where의 경우는, 테이블에서 특정 조건에 부합하는 컬럼을 검색하는 것이다. Having은 그룹 함수를 적용 후, 원하는 조건에 해당하는 그룹만 산출하기 위해 사용하는 것이다. 다시 말해, 컬럼 단위별로 쳐낼 것인가, 그룹 단위로 쳐낼 것인가이다. Having 절의 기본 구조 SELECT (컬럼) FROM (테이블명) WHERE (컬럼 추출 조건) GROUP BY (묶을 그룹 선택) HAVING (그룹 추출 조건) ORDER BY (정렬대상) LIMIT (추출 희망 개수) 예제 SELECT department_id, avg(salary) FROM employee_lis.. 2021. 7. 5. [SQL] HackerRank - Ollivander's Inventory 문제링크 https://www.hackerrank.com/challenges/harry-potter-and-wands/problem Ollivander's Inventory | HackerRank Help pick out Ron's new wand. www.hackerrank.com 풀이방법 해당 문제의 경우는 복잡한데 다음과 같다. - is evil이 아닌 완드 중에서 - (power과 age가 같은 완드 중에서) 돈이 가장 적게 드는 완드를 - power를 descending한 순서로, 동률일 경우 age가 descending한 순서로 정렬하시오. 데이터 프레임이 두 개로 나눠져있고, code가 동일해서 두 테이블을 join해야 하는 것은 문제이다. 그런데, power과 age가 같은 완드 중에서 돈.. 2021. 6. 8. [SQL] HackerRank - The Report https://www.hackerrank.com/challenges/the-report/problem The Report | HackerRank Write a query to generate a report containing three columns: Name, Grade and Mark. www.hackerrank.com 문제 설명 및 방법 학생의 성적 데이터가 주어진다. 그리고, 학생의 점수가 어떤 구간의 rank에 속하는지를 추출해야 한다. 양쪽의 data를 동시에 써야 하는데, 공통된 열이 없다. 대신에 between문을 바탕으로 값을 추출할 수 있다. Cartesian Product를 활용하여 데이터 필드를 생성하면 된다. 또한 문제에서 , Grade가 8 이하인 경우에는 Name을 보내지 않.. 2021. 6. 8. [SQL] JOIN의 종류와 예시 Join이란? 두개 이상의 데이터를 연결하여 데이터를 검색해야 하는 경우가 있을 것이다. 이때 공통된 키 값을 기반으로 데이터 테이블들을 묶어 주어야 할 것인데, 이 때 Join을 사용하게 된다. Inner Join vs Outer Join - Inner Join : Join 조건에서 값이 일치하는 행만 반환한다. - Outer Join : Join 조건에서 한쪽 값만 없더라도 행을 반환한다. Inner Join Inner Join은 두 테이블 양쪽에 모두 존재하는 레코드를 반환한다. 즉, 교집합의 연산과 동일하다. 구조 SELECT TABLE1.속성명, TABLE2.속성명... FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.속성명 = TABLE2.속성명 .. Left Join .. 2021. 6. 8. 이전 1 2 3 4 5 다음