-
[MySQL] SELECT문으로 데이터 조회하기 (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY)직접 해보기/SQL 2024. 8. 9. 23:31728x90반응형
0️⃣ SELECT문으로 데이터 조회하기
- SELECT는 필요한 데이터를 조회할 수 있게 해주는 SQL 명령어입니다.
- SELECT는 여러가지 절들과 함께 사용될 수 있는데, 아래와 같이 순서를 지켜줘야 합니다.
SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY - SQL문을 통해 데이터를 조회하는 순서를 살펴보면 아래와 같습니다.
FROM 데이터를 조회할 테이블을 선택함 WHERE 선택한 테이블을 특정 조건으로 필터링함 → 특정 조건에 맞는 행만 선택함 GROUP BY 테이블의 특정 열의 내용에 따라 그룹핑함 → 그룹별 데이터를 집계해서 새로운 테이블을 생성함 HAVING 그룹핑된 새로운 테이블을 특정 조건으로 필터링함 (GROUP BY 아래에서 사용되어야 함) SELECT 데이터를 조회할 열을 선택함 ORDER BY 열을 오름차순(ASC) 혹은 내림차순(DESC)으로 정렬함 (맨 마지막에서 사용되어야 함)
1️⃣ SELECT문으로 데이터 조회하기
- 회원정보 테이블에서 여성회원의 정보만 조회하는 SQL문을 작성해보겠습니다.
- SELECT * 은 모든 열을 조회한다는 의미입니다.
FROM customer(회원정보) 테이블에서 WHERE gender(성별) = 'F'(여성) 인 행만 필터링해서 SELECT 모든 열을 조회한다
2️⃣ GROUP BY 와 집계함수로 데이터 조회하기
- 회원정보 테이블에서 주거지역별로 여성회원의 수를 집계해서 조회해보겠습니다.
- 아래의 address와 같이, GROUP BY에 넣은 열을 SELECT에도 넣어줘야 원하는 분석결과를 보기좋게 출력할 수 있습니다.
FROM customer(회원정보) 테이블에서 WHERE gender(성별) = 'F'(여성) 인 행만 필터링하고 GROUP BY address(주거지역) 별로 그룹핑해서 SELECT address(주거지역), 회원수 2개열을 조회한다 - 회원정보 테이블에서 주거지역별로 여성회원 수가 100명 넘는 경우를 조회해서, 오름차순으로 정렬해보겠습니다.
- 그룹핑해서 만든 새로운 테이블에서 필터링을 하려면, 아래와 같이 HAVING절을 사용해야 합니다.
FROM customer(회원정보) 테이블에서 WHERE gender(성별) = 'F'(여성) 인 행만 필터링해서 GROUP BY address(주거지역) 별로 그룹핑하고 HAVING count수가 100이 넘는 경우만 필터링해서 SELECT address(주거지역), 회원수 2개 열을 조회한다 ORDER BY 이 결과를 회원수 기준 오름차순으로 정렬한다
참고1: boostcourse 강좌 (기초 데이터 분석을 위한 핵심 SQL)
728x90반응형'직접 해보기 > SQL' 카테고리의 다른 글
[MySQL] 서브쿼리Subquery 활용해 데이터 조회하기 (0) 2024.08.10 [MySQL] 조인JOIN 으로 테이블 결합하기 (INNER JOIN, LEFT JOIN, RIGHT JOIN (0) 2024.08.10 [SQL TCL] 트랜잭션Transaction, 실행Commit, 취소Rollback, 임시저장Savepoint (0) 2024.08.08 [SQL DML] SQL 데이터 삽입INSERT, 조회SELECT, 수정UPDATE, 삭제DELETE (0) 2024.08.07 [SQL DDL] SQL 테이블 생성CREATE, 수정ALTER, 삭제DROP (0) 2024.08.07