[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하시면 됩니다. |
여러 상황에 맞게 데이터를 출력해보며 연습하시는 것이 좋고 다양한 키워드를 적재적소하게 사용하시면 됩니다.
반응형
'데이터베이스 > MySQL' 카테고리의 다른 글
[005] 데이터베이스 (MySQL) - DELETE (데이터 삭제) (0) | 2022.12.08 |
---|---|
[004] 데이터베이스 (MySQL) - UPDATE (데이터 수정) (0) | 2022.12.08 |
[003] 데이터베이스 (MySQL) - INSERT (데이터 삽입하기) (0) | 2022.12.07 |
[001] 데이터베이스 (MySQL) - 개요 (0) | 2022.12.05 |