728x90
ORDER BY절
데이터를 정렬해서 조회하기 위해 사용한다.
SELECT ~ FROM ~ WHERE ~ 뒤에 ORDER BY절이 위치한다.
오름차순 정렬이 기본 설정이며 내림차순 정렬 시 DESC를 붙여준다.
//debut_date 기준 오름차순으로 mem_id, mem_name, debut_date를 조회한다
SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date;
ORDER BY 조건은 여러 개를 사용할 수 있다.
첫 번째 조건으로 정렬 후 동률인 데이터가 있을 경우 두 번째 조건으로 정렬한다.
//height으로 내림차순 정렬 후 동률인 경우 debut_date 기준으로 오름차순 정렬한다
SELECT mem_id, mem_name, debut_date, height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC;
LIMIT
또한 LIMIT 키워드를 사용하면 상위 N 개의 데이터만 조회할 수 있다
LIMIT N, M 형식으로 사용하면 N번째 데이터부터 M개의 데이터를 조회한다.
ORDER BY절 없이 LIMIT만 단독으로 사용도 가능하다.
//debut_date 오름차순 정렬 후 상위 3개 데이터만 조회한다.
SELECT mem_name, debut_date
FROM member
ORDER BY debut_date
LIMIT 3;
//height 내림차순 정렬 후 3번째 데이터부터 2개 조회한다.
SELECT mem_name, height
FROM member
ORDER BY height DESC
LIMIT 3,2;
DISTINCT
조회 결과의 중복을 제거해준다
//동일한 주소가 여러 개면 중복을 없애고 하나만 보여준다.
SELECT DISTINCT addr FROM member;
.
GROUP BY절
특정 속성별로 그룹을 지어서 집계 함수를 통해 결과를 조회할 수 있다.
ㅇGROUP BY절과 함께 사용하는 집계함수
1. COUNT(): 그룹별 행의 개수(데이터의 개수)를 출력
2. AVG(): 그룹별 속성값의 평균을 출력
3. MIN(): 그룹별 최소값을 출력
4. MAX(): 그룹별 최대값을 출력
5. SUM(): 그룹별 속성값의 총합을 출력
//mem_id별 amount*price의 총합을 출력한다
SELECT mem_id "회원 아이디", SUM(price*amount) "총 구매 금액"
FROM buy
GROUP BY mem_id;
HAVING 절
GROUP BY 절에서 조건문을 추가할 때, WHERE절이 아닌 HAVING 절을 사용한다.
//HAVING절을 사용하면 GROUP BY절에 조건을 추가할 수 있다.
SELECT mem_id "회원 아이디", SUM(price*amount) "총 구매 금액"
FROM buy
GROUP BY mem_id
HAVING SUM(price*amount) > 1000 ;728x90
'개발공부 > 혼자공부하는 SQL' 카테고리의 다른 글
| [SQL] MySQL의 데이터 형식 (0) | 2023.03.08 |
|---|---|
| [SQL] INSERT, UPDATE, DELETE문 (0) | 2023.03.07 |
| [SQL 기본 문법] SELECT ~ FROM ~ WHERE (0) | 2023.03.06 |
| 데이터베이스 개체(인데스, 뷰 스토어드 프로시저) (0) | 2023.03.06 |
| 데이터베이스 모델링 (0) | 2023.03.03 |