본문 바로가기

시스템/DB

SELECT 기본 용법

▣ 기본 문법

SELECT         select_expr}
[FROM          table_references]
[WHERE         where_condition]
[GROUP BY      {col_name | expr | position}]
[HAVING        where_condition]
[ORDER BY      {col_name | expr | position}]
[LIMIT         {[offset,] row_count | row_count OFFSET offset}];
SELECT 열_이름
    FROM 테이블_이름
    WHERE 조건식
    GROUP BY 열_이름
    HAVING 조건식
    ORDER BY 열_이름
    LIMIT 숫자

 

예시)

SELECT mem_name, addr
    FROM member
    WHERE addr IN('경기', '전남', '경남'); -- OR와 역할이 같다
SELECT *
    FROM member
    WHERE mem_name LIKE '우%'; -- 정규 표현식 *와 같다
SELECT *
    FROM member
    WHERE mem_name LIKE '__핑크'; -- 한글자 매칭은 '-' 한 개이다

 

예시2) 서브 쿼리

- SELECT 안에 SELECT를 둘 수 있다.

SELECT mem_name, height FROM member
    WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');

 

정렬(ORDER BY) 사용법

SELECT mem_id, mem_name, debut_date, height
    FROM member
    WHERE height >= 164
    ORDER BY height DESC; --기본은 오름 차순, DESC를 붙여주면 내림차순
    
SELECT mem_id, mem_name, debut_date, height
    FROM member
    WHERE height >= 164
    ORDER BY height DESC, debut_date ASC; --만약 키가 동일하다면, 데뷔 일자가 빠른 순으로 정렬

 

▣ 갯수 제한(LIST)

- 'LIMIT 시작 갯수' : '시작' 위치 부터 '갯수' 만큼 출력

- 'LIMIT 3' 은 'LIMIT 0 3' 과 동일하다.

SELECT mem_name, height
    FROM member
    ORDER BY height DESC
    LIMIT 3, 2;

 

▣ 중복 제거(DISTINCT)

- (예시) member 테이블에서 addr를 중복 없이 출력한다.

SELECT DISTINCT addr FROM member

 

집계를 낼 때(GROUP BY)

- 동일 회원의 구매 갯수를 합쳐서 보고 싶을 때 GROUP BY를 이용할 수 있다

- (예시) 그룹별 총 구매 금액을 나타낸다

SELECT mem_id "회원 아이디", SUM(amount * price) "총 구매 금액"
    FROM buy 
    GROUP BY mem_id;

- 사용 가능한 집게 함수

SUM() 합계
AVG() 평균
MIN() 최소값
MAX() 최대값
COUNT() 행의 갯수
COUNT(DISTINCT) 행의 갯수(중복은 1개만 인정)

예시)

SELECT COUNT(phone1) "연락처가 있는 회원" FROM member;

 

▣ HAVING

- GROUP BY 절 다음에 나오고, (WHERE가 테이블에 대해 조건을 붙이는 것과 달리) HAVING은 집계 함수에 대해 조건을 붙일 수 있다

- (예시) 그룹별 총 금액 중 1000 이상 구매한 그룹 이름과 금액을 나타낸다.

SELECT mem_id "회원 아이디", SUM(amount * price) "총 구매 금액"
    FROM buy 
    GROUP BY mem_id;
    HAVING SUM(amount * price) >= 1000
    ORDER BY SUM(amount * price) DESC;

 

 

출처)

- http://www.yes24.com/Product/Goods/104661489

 

혼자 공부하는 SQL - YES24

혼자 해도 충분하다! 1:1 과외하듯 배우는 데이터베이스 자습서(MySQL Community 8.0 지원)이 책은 아무런 사전 지식 없는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을

www.yes24.com

 

 

반응형