-
[DML]SELECT구문SQLD/SQL 2023. 8. 29. 19:34
SELECT
저장되어 있는 데이터를 조회하기 위해 사용한다.
1)SELECT의 구성과 실행 순서
순서 절 설명 5 SELECT 가져올 컬럼을 지정한다. 1 FROM 가져올 테이블을 지정한다. 2 WHERE 조건을 설정한다. 3 GROUP BY 그룹별로 묶을 수 있도록 해주는 명령어 4 HAVING 집계 함수에 대한 조건절은 HAVING에서만 사용 가능 6 ORDERBY 지정한 컬럼을 오름차순/내림차순 정렬한다. GROUP BY
- 그룹별로 묶을 수 있도록 해주는 명령어
- 그룹화 하는 이유는 그룹별로 집계를 하기 위해서인 경우가 많다.
- 여러개의 컬럼으로 그룹화 할 수 있다.
SELECT 지역,성별,COUNT(*) as 집계 FROM 주민 GROUP BY 지역,성별 -- 지역과 성별을 그룹화한다. EX) 경기 여성/경기 남성
HAVING
- GROUP BY의 WHERE절 역할을 한다.
- 집계 함수에 대한 조건절은 HAVING에서만 사용 가능하다.
- WHERE절을 사용해도 되는 조건을 HAVING절에서 사용하면 성능상 불리할 수 있다.
-- 수학의 평균 점수가 90점 이상인 학생을 구하기 SELECT 학생번호,AVG(수학) AS 수학 평균점수 FROM 학생 WHERE 년도 = '2023' AND 학기 = '1' GROUP BY 학생번호 HAVING AVG(수학) >= 90
ORDER BY
- 내림차순(DESC),오름차순(ASC)두 개의 옵션이 존재하며, 기본 값은 오름차순(ASC)이다.
- SELECT절에 정의하지 않은 컬럼을 사용해도 문제 없다.
- 컬럼명이나 ALIAS로 명시하거나 SELECT절의 컬럼 순서를 숫자로 명시할 수 있다.
- 여러가지 컬럼을 기준으로 정렬이 가능하다.
-----SELECT절에 기술되지 않은 컬럼으로 정렬이 가능하다. SELECT 지역,매출 금액 FROM 지역별매출 ORDER BY 년; -----컬럼명으로 정렬 SELECT COL1,COL2 FROM SAMPLE ORDER BY COL1 DESC COL2 DESC -- COL1을 기준으로 내림차순 정렬,같은 값이 있다면 COL2로 내림차순 -----숫자로 정렬 SELECT COL1,COL2 FROM SAMPLE ORDER BY 1 2; -- 1번 컬럼을 기준으로 ASC,같은 값이 존재한다면 2번 컬럼을 기준으로 ASC -----인라인 뷰의 경우 SELECT절에 있는 컬럼만 사용가능 SELECT 지역,매출금액 FROM ( SELECT 지역,매출금액 FROM 지역별 매출 ) ORDER BY 년 ASC; ❌ ----- 집계 함수 사용이 가능 SELECT 지역,SUM(매출금액) AS 매출금액 FROM 지역별매출 GROUP BY 지역 HAVING SUM(매출금액) > 1000 ORDER BY COUNT(*)
'SQLD > SQL' 카테고리의 다른 글
[DML]SELECT-서브쿼리 (0) 2023.09.07 [DML]SELECT-연산자 (0) 2023.08.30 [DML]INSERT,UPDATE,DELETE (0) 2023.08.29 [DDL]ALTER,DROP,TRUNCATE,RENAME (0) 2023.08.29 [DDL]CREATE (0) 2023.08.28