본문 바로가기
개발자 전향 프로젝트

[DBMS] MySQL 자주 쓰이는 SELECT(조회) 관련 명령어 6개

by 샘오리 2022. 8. 25.
728x90
반응형

1. LIMIT

 

조회하고 싶은 데이터의 양을 제한하는 명령어

 

SELECT 필드 이름
FROM 테이블 이름
WHERE 조건    (선택)
LIMIT 숫자;

 

*LIMIT 뒤에 나오는 숫자만큼의 TUPLE이 조회된다.

 

예:

Customer 테이블

위 테이블에서 특정 조건 없이 3개만 보고 싶다면 

SELECT *
FROM Customer
LIMIT 3;

을 하면 되고

 

SALARY가 2000을 초과하는 조건을 추가해서 

LIMIT을 2로 건다면

위와 같은 결과가 나온다.

 

응용:

만약 조건이 2000을 초과한다고 지정된 것이 아니라 2000을 포함하거나 그 이상이라고 한다면

LIMIT이 2개라 하더라도 조건에 부합하는 데이터가 2개가 이상인데 이럴 땐 어떻게 될까?

 

그러면 조건에 부합하는 데이터를 하나씩 채울텐데 조건인 2000부터 시작하여 조건에 부합하는 데이터 2개를 채우자 마자

반환하기 때문에 아래와 같은 결과가 나온다.

 

 

2. MIN & MAX (AS)

MIN 은 특정 필드의 최솟값, MAX는 최대값이다.

그 말은 즉슨, 중복이 없을 경우 하나만 조회해온다는 뜻이다.

 

간단하게는 그냥

SELECT MIN(필드명) FROM 테이블명

SELECT MAX(필드명) FROM 테이블명

이다.

 

그리고 그 조회해온 필드명을 AS 라는 명령어를 통해 바꿀 수 있다.

 

예를 들어 SALARY AS 월급이작고귀여운사람; 라고 한다면 

아래와 같이 나오는 것이다. 

 

MAX는 반대 개념이라고 생각하면 된다.

 

3. COUNT & AVG & SUM

SELECT COUNT(필드명)
FROM 테이블명
WHERE 조건;

*해당 테이블에서 해당 조건에 맞는 데이터가 몇개나 있는지 그 데이터의 개수를 반환한다.

 

예:

 

SELECT AVG(필드명)
FROM 테이블명
WHERE 조건;

*해당 테이블에서 해당 조건에 맞는 데이터의 평균을 반환한다.

 

예:

 

SELECT SUM(필드명)
FROM 테이블명
WHERE 조건;

*해당 테이블에서 해당 조건에 맞는 데이터의 합계를 반환한다.

 

예:

4. GROUP BY + HAVING

국가별로 도시의 정보가 담긴 city 테이블

GROUP BY는 그룹화하기 위해 집계함수인 COUNT & AVG & SUM 와 같이 사용된다.

위 테이블을 활용해서 COUNTRYCODE, 국가코드를 기준으로 그룹화할것이고

해당 국가코드별로 얼마나 많은 도시가 있는지 COUNT 함수를 쓸 것이다.

 

예시는 아래와 같다.

 

SUM과 AVG같은 경우는 국가별로 묶은뒤 인구수의 평균과 합계를 둘 수 있겠다.

평균값 내림차순이기에 도시국가인 싱가폴과 홍콩이 높은것을 알 수 있다.
도시 인구수의 합계를 추리니 중국,인도 등 인구수가 많은 나라들이 나오는 것을 볼 수 있다.

5. BETWEEN

위 테이블에서 나이가 25과 30 사이에 있는 사람의 데이터를 가져오고 싶다고 가정해보자.

예:

WHERE 필드명 BETWEEN 데이터 AND 데이터

위와 같이 간단하게 할 수 있다.

 

6. CASE + WHEN + THEN + END

 

  • WHEN - THEN은 항상 같이 사용하며 여러개 사용이 가능하다.
# CASE문 사용 방법

CASE
	WHEN 조건1 THEN 결과값1
	WHEN 조건2 THEN 결과값2
	WHEN 조건N THEN 결과값N
	ELSE 결과값
END

 

해당 함수는 AS와 비슷한데 케이스별로 데이터들을 다르게 부를 수 있고

하나의 필드를 임시로 생성할 수 있다는 장점이 있다.

 

예를 들어

60~70점이 C,

70~80점이 B,

80~90점이 A,

90~100점이 A+

학점을 주는 학교가 있다고 가정하자.

 

그러면 학생들의 성적이 담긴 테이블에

CASE WHEN THEN END 함수를 써서 쉽게 학점을 매길 수 있는 것이다.

위에서 다룬 BETWEEN까지 함께 사용하여 예를 든다면 아래와 같다.

 

CASE

WHEN GRADE BETWEEN 90 AND 100 THEN 'A+'

WHEN GRADE BETWEEN 80 AND 90 THEN 'A'

WHEN GRADE BETWEEN 70 AND 80 THEN 'B'

WHEN GRADE BETWEEN 60 AND 70 THEN 'C'

ELSE 'D'

END AS GRADE;

 

워크벤치에 있는 도시 테이블로 예시를 들어

인구가 100,000 보다 작은 도시를 소도시

100,000보다 큰 도시를 대도시로 분류해보자. 

 

MYSQL 기초편 끗

728x90
반응형