[002] 데이터베이스 (MySQL) - SELECT (데이터 가져오기)

2022. 12. 6. 18:00데이터베이스/MySQL

반응형

안녕하세요~ totally 개발자입니다.

 

오늘 다룰 부분은 MySQL에서 제일 중요한 부분인 SELECT 구문입니다. 데이터를 테이블에서 가져올 때 사용되며 여러 키워드를 조합해서 조건, 그룹핑 등을 할 수 있습니다. 아래 STUDENTS 테이블을 통해 여러 예제를 확인해보겠습니다. 

 

STUDENT ID STUDENT NAME STUDENT AGE
1 Andrew 17
2 Brian 18
3 Catherine 19

 

 

[기본 예제]

기본적으로 SELECT [가져올 column] FROM [지정 테이블] 형태로 사용되며 아래 예제처럼 다양하게 데이터를 가지고 올 수 있습니다.

문제 SQL 설명
STUDENTS 테이블의 모든 데이터를 조회하세요. SELECT * FROM STUDENTS; *는 모든 column를 뜻합니다.
STUDENTS 테이블에서 나이가 18살 이상인 데이터를 조회하세요. SELECT * FROM STUDENTS WHERE studentAge >= 18; WHERE 키워드를 사용하여 데이터를 필터링 즉 조건을 명시할 수 있습니다.
STUDENTS 테이블에서 학생 이름에 ri가 포함되는 데이터를 조회하세요. SELECT * FROM STUDENTS WHERE studentName LIKE '%ri%'; LIKE 키워드를 사용하면 Wildcard 즉 String을 대체할 수 있는 키워드를 사용할 수 있으며 LIKE '%ri%'에서 %는 0이상의 문자를 말하기 때문에 ri를 포함하는 문자를 찾을 수 있습니다.
STUDENTS 테이블의 모든 학생 수를 출력해보세요. SELECT COUNT(*) FROM STUDENTS; COUNT 함수를 사용하여 데이터의 row 수를 집계할 수 있습니다.
STUDENTS 테이블에서 최대 나이를 출력해보세요. SELECT MAX(studentAge) FROM STUDENTS; MAX 함수를 사용하여 최댓값을 가져올 수 있습니다. 

 

 

[추가 예제]

추가적으로 ORDER BY, HAVING, JOIN, GROUP BY 등의 키워드도 많이 사용되기 때문에 반드시 알고 계셔야 합니다.

STUDENT ID STUDENT NAME STUDENT AGE AREA
1 Andrew 17 Seoul
3 Brian 19 Seoul
2 Catherine 18 Incheon

 

SCORE ID STUDENT ID SCORE GRADE
s0001 1 A
s0002 3 C
s0003 2 B

위 두 테이블을 이용하여 예제들을 살펴보겠습니다.

 

 

문제 SQL 설명
STUDENTS 테이블의 모든 데이터를 studentAge를 기준으로 오름차순으로 정렬하여 출력해보세요. SELECT * FROM STUDENTS ORDER BY studentAge ASC; ASC를 붙여도 되고 생략해도 됩니다. ASC는 ascending(오름차순), DESC를 사용하면 descending(내림차순)이 됩니다.
STUDENTS 테이블에서 Seoul에 사는 학생들의 수와 Area를 출력해보세요. SELECT COUNT(*), AREA FROM STUDENTS GROUP BY AREA; 여기에서는 GROUP BY를 Area를 기준으로 그룹핑하여 카운트를 합쳐준다고 생각하시면 됩니다. 즉 출력 결과는 2, Seoul이 됩니다.
STUDENTS 테이블에서 Seoul에 사는 학생들의 수와 Area를 출력하되, 나이가 18살 이상인 학생이여야 합니다. SELECT COUNT(*), AREA FROM STUDENTS GROUP BY AREA HAVING studentAge >= 18; 보통 조건 명시 때에는 WHERE clause를 사용하면 되지만 GROUP BY 때에는 HAVING을 사용해서 필터링을 해야 합니다.
STUDENTS와 SCORES 테이블의 모든 데이터를 studentID로 연결하여 동시에 출력해보세요. SELECT * FROM STUDENTS JOIN SCORES ON STUDENTS.studentID = SCORES.studentID JOIN 키워드의 기본 예시입니다. 두 테이블을 연결할 때 동일한 필드가 있는지 확인해서 연관지어 SELECT하시면 됩니다.

 

여러 상황에 맞게 데이터를 출력해보며 연습하시는 것이 좋고 다양한 키워드를 적재적소하게 사용하시면 됩니다.

반응형