1. LIMIT
조회하고 싶은 데이터의 양을 제한하는 명령어
SELECT 필드 이름
FROM 테이블 이름
WHERE 조건 (선택)
LIMIT 숫자;
*LIMIT 뒤에 나오는 숫자만큼의 TUPLE이 조회된다.
예:
위 테이블에서 특정 조건 없이 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
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 기초편 끗
'개발자 전향 프로젝트' 카테고리의 다른 글
국비학원의 현실 ( 학원 출신+ 비전공자 ) (0) | 2022.09.05 |
---|---|
MyBatis vs JPA (2) | 2022.08.26 |
[DBMS] MySQL 의 기초 (2) JOIN (0) | 2022.08.22 |
[DBMS] MySQL 의 기초 (1) 기본 CRUD 와 정렬 조회 (0) | 2022.08.22 |
API 와 REST API에 대해 (0) | 2022.07.27 |