select 쿼리의 수행 순서
FROM, ON, JOIN > WHERE, GROUP BY, HAVING > SELECT > DISTINCT > ORDER BY> LIMIT
1. FROM
- 각 테이블을 확인한다.
2. ON
- JOIN 조건을 확인한다.
3. JOIN
- 테이블 조인(병합)
2. WHERE
- 데이터셋을 형성하게 되면 WHERE의 조건이 개별 행에 적용된다. WHERE절의 제약 조건은 FROM절로 가져온 테이블에 적용될 수 있다.
- 개별 행을 피터링하는데 사용된다.집계함수는 WHERE절과 사용이 불가능 그이뉴는 집계함수를 사용할 수 있는 GROUP BY 절이 WHERE절 뒤에 수행되기 때문
3. GROUP BY
- WHERE의 조건 적용 후 나머지 행은 GROUP BY절에 지정된 열의 공통 값을 기준으로 그룹화된다. 쿼리에 집계 기능이 있는 경우에만 이 기능을 사용해야 한다.
- GROUP BY 명령어를 통해 특정 컬럼을 기준으로 연산한 결과를 집계 키로 정의하여 그룹을 짓는 역할
- 집합 연산자는 COUNT,SUM,AVG,MAX,MIN등이 있다.
4. HAVING
- 그룹을 필터링 하는데 사용된다.
- 집계함수는 HAVING절과 함계 사용할 수 있다.
5. SELECT
- SELECT에 표현된 식이 마지막으로 적용된다.
- 데이터 추출
6. DISTINCT
- 중복 제거
7.ORDER BY
- 지정된 데이터를 기준으로 오름차순, 내림차순 지정
8. LIMIT
- LIMIT에서 벗어나는 행들은 제외되어 출력된다.
Index?
- Index란 테이블을 처음부터 끝까지 검색하는 방법인 FTS(Full Table Scan)과는 달리 인덱스를 검색하여 해당 자료의 테이블을 엑세스 하는 방법입니다.
- 예를들어, DB를 책으로 비유하면 데이터는 책의 내용일 것이고, 데이터가 저장된 레코드의 주소는 index 목록에 있는 페이지 번호일 것이다.
- 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 검색하는데 빠르지만, 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려집니다.
- 즉, 인덱스는 데이터의 저장 성능을 희생하고 그대신 데이터의 검색 속도를 높이는 기능이라 할 수 있습니다.
Join? Join의 종류
Join
- 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법
- 연결하려면 테이블들이 적어도 하나의 컬럼을 공유하고 있어야한다.
- 이 공유하고 있는 컬럼을 PK 또는 FK값으로 사용
- ex) 인스타그램의 댓글창처럼, 유저의 아이디와 댓글의 내용을 동시에 보여줄 떄처럼 서로 다른 각각의 테이블 속 데이터를 동시에 보여주려고 할 때 사용하는 sql문이다.
- INNER JOIN : 기준 테이블과 조인 테이블 모두에 조인 컬럼 데이터가 존재해야 조회됨, 서로 연관된 내용만 검색하는 조인 방법이다. 교집합
- NATURAL JOIN :
- CROSS JOIN : 곱집합, 두 테이블 데이터의 모든 조합
- OUTER JOIN : 공통된 부분만 골라 결합하는 INNER JOIN과 다르게 공통되지 않은 행도 유지한다. A테이블,B테이블이 가지고 있는거 둘다 SELECT , 합집합
- LEFT JOIN
- RIGHT JOIN
'IT > 용어정리' 카테고리의 다른 글
LomBok (0) | 2023.07.21 |
---|---|
상속 (0) | 2023.07.21 |
생성자(Constructor) (0) | 2023.07.20 |
Java에서 제공하는 원시 타입 (0) | 2023.07.20 |
Ajax란? (0) | 2023.07.20 |