관리 메뉴

TEAM EDA

[SQL 기초] 3장. SQL과 함수 본문

EDA Study/SQL

[SQL 기초] 3장. SQL과 함수

김현우 2020. 3. 19. 17:14

본 자료는 Elice Academy에서 진행한 SQL 기초라는 과목을 정리한 자료입니다. 

 

목차 

 

  • COUNT
  • LIMIT 
  • SUM과 AVG 
  • MIN와 MAX

 

1. COUNT 

COUNT란 검색한 결과의 데이터의 개수를 가져오는 명령어입니다. 예를 들어, 책 정보를 저장하는 book 테이블에서 전체 책 수를 조회해보려고 할 때 사용할 수 있습니다. 

문법으로는 SELECT COUNT(컬럼) FROM 테이블입니다.  

book 테이블 안에 있는 id 컬럼의 개수를 검색

만일 검색할 데이터에 *을 입력하면 모든 데이터가 검색이 됩니다. (전체의 row의 수가 출력이 됩니다. 

 

※참고

컬럼 자리에 *을 넣을 경우 모든 컬럼에 대한 값을 볼 수 있습니다. count의 경우 NULL은 개수에 포함되지 않습니다. 

 

실습 1. 데이터 수 카운트하기 

문제 : 도서관의 전체 책의 수를 조회해 봅시다. 하지만 select를 통해 전체를 출력하고 세어보는 것은 위험합니다. 특히 개수가 많다면 중간에 실수할 가능성이 높습니다. 따라서 앞서 배운 count 함수를 이용해 조회하도록 합시다.

SELECT * FROM book; 

SELECT COUNT(*) FROM book; 

 

2. LIMIT 

출력하고자 하는 데이터의 개수를 제한하는 명령어입니다. 데이터의 수가 많으면 불러오는데 너무 많은 시간이 걸리므로 데이터를 빠르게 가져올 때 사용합니다. 예를 들어, book 테이블에서 3권의 책만을 출력하는 경우를 생각할 수 있습니다. 

문법으로는 SELECT * FROM 테이블 LIMIT 제한할 숫자를 사용합니다. 

첫 번째 칼럼의 시작은 0. 즉, 'LIMIT 1, 5'는 2번째 컬럼부터 5개를 가져오라는 의미

 

예시) people 테이블의 로우를 두 번째 로우부터 조회하되 7개까지만 출력하는 쿼리

SELECT * FROM people LIMIT 1, 7

 

실습 2. 데이터 수 제한하기 

문제 : 엘리스 도서관에 책이 몇 권 더 추가로 들어왔습니다. 이제 도서관에는 책을 한 번에 조회하면 알아볼 수 없을 정도로 많아졌습니다. 혼란스러운 엘리스를 위해 select문 뒤에 limit를 덧붙여 책 정보 5개 만을 조회해보세요!

-- book테이블의 모든 컬럼을 조회해 봅시다. 단 5권만 잘라서 출력해야 합니다.
SELECT * FROM book LIMIT 5

3. SUM과 AVG

SUM은 컬럼의 값을 더하는 함수입니다. 예를 들어, 중간고사 성적이 담긴 grade 테이블에서 학생들의 수학 성적을 모두 더할 때 사용할 수 있습니다. 

기본 문법으로는 SELECT SUM(컬럼) FROM 테이블입니다. 

AVG은 컬럼의 평균을 더하는 함수입니다. 예를 들어, 중간고사 성적이 담긴 grade 테이블에서 학생들의 성적을 평균 낼 때 사용할 수 있습니다. 

기본 문법으로는 SELECT AVG(korean), AVG(english), AVG(math) FROM 테이블입니다. 

※참고 

결측치의 경우는 값이 빠진 경우이므로 자동적으로 제외하고 계산됩니다. 

 

실습 3. 데이터 평균 구하기 

문제 : grade 테이블 안에는 이번 중간고사에서 본 성적이 들어 있습니다. 이 테이블을 이용해 과목별 평균점수를 구해봅시다. 이번에도 직접 계산하는 것은 어려우니 avg 함수를 이용해 봅시다. 모든 국어 점수의 평균, 모든 영어 점수의 평균, 모든 수학 점수의 평균 총 세 개의 값을 구해봅시다.

SELECT AVG(korean), AVG(english), AVG(math) FROM grade;

4. MAX와 MIN 

MAX은 컬럼의 최댓값을 구하는 함수입니다. 예를 들어, grade 테이블에 저장된 국어 점수 중에서 가장 높은 점수가 몇 점인지 조회해볼 때 사용할 수 있습니다. 

기본 문법으로는 SELECT MAX(컬럼) FROM 테이블입니다. 

MIN은 컬럼의 최솟값을 구하는 함수입니다. 예를 들어, grade 테이블에 저장된 영어 점수 중에서 가장 낮은 점수가 몇 점인지 조회해볼 때 사용할 수 있습니다. 

기본 문법으로는 SELECT MIN(컬럼) FROM 테이블입니다. WHERE 조건절을 이용해서 원하는 데이터의 최솟값을 구할 수도 있습니다. 

 

※참고 

MIN, MAX 모두 수치형뿐만 아니라 문자형도 계산할 수 있습니다. 

 

실습 4. 최댓값 찾기 

문제 : 이번 국어시험은 아주 어려웠습니다 그래서 엘리스는 100점을 맞은 친구가 없을 거라 생각했습니다. 그 생각이 맞았는지 확인하기 위해 국어시험에서 가장 높은 점수가 몇 점이었는지 조회해 봅시다. select문에 max함수를 이용해 조회하면 됩니다.

 

-- 가장 높은 국어성적을 조회합니다.
SELECT MAX(korean) FROM grade