SQL

[실전] LIMIT, COUNT, DISTINCT, 집계함수

Bordercolli 2023. 8. 25. 16:41
728x90

🐕‍🦺 WORKBENCH에서 데이터 불러오기

 

sakila데이터베이스를 어떻게 워크벤치를 통해서 내 DB에 넣는가? 스키마 처리 > DATA를 처리

sakila-schema를 먼저 선택해서 정상적으로 실행을 하면 이와 같이 녹색으로 화면이 뜰 것이.

sakila-data도 위와 똑같은 방식으로 한다.

 

🐕‍🦺 실습문제(LIMIT, COUNT(), DISTINCT)

현업에서는 이미 있는 데이터에서 내가 원하는 데이터를 끄집어내는 역할을 많이 할 것이다.

SQL코딩테스트쪽에서도 결국은 SELECT를 잘 조합하여서 원하는 데이터를 뽑아내는 쿼리문제이다.

SELECT구문은 추가적인 여러가지 SQL구문이 있다. 그리고 내가 원하는 데이터를 뽑아내려면 그런 여러가지 SQL구문을 조합해야 한다. 그런 조합하는 역량이 필요로 하다.

 

LIMIT

현업에서는 limit 명령어를 자주 사용한다. 왜냐하면 방대한 데이터를 한 번에 끄집어내려면 많은 시간이 걸리니 꼭 limit로 확인하는 습관을 기르자!

 

문제1. film이라는 테이블이 무엇인지 보고싶다.

film_id가 기본키인 것을 알 수 있다.

 

COUNT()

행의 수를 계산을 한다. 행 안에는여러 컬럼이 있다. 이 컬럼 명을 써서 해당 행의 개수를 알아내도 되고, 아니면 *를 써서 전체 행의 개수를 알아내도 동일하다. 

SELECT COUNT(*) FROM 테이블이름 → 테이블 전체 데이터 수 세기

SELECT COUNT(*) FROM 테이블이름 WHERE 조건문 → 특정 조건에 맞는 테이블 수 세기

 

문제2. 영화 테이블(film)에서 총 영화 개수 알아내기

DISTINCT

중복값 출력되지 않음.

SELECT DISTINCT 컬럼명 FROM 테이블이름

SELECT DISTINCT 컬럼명 FROM 테이블이름 WHERE 조건문

 

문제3. 영화 테이블에서 영화 등급 종류 알아내기, 각 영화의 영화 등급은 rating컬럼이 있다.

rating종류 5가지이다.

문제4. 영화테이블에서 영화 release연도 종류를 알아내기, 각 영화의 release연도는 release_year컬럼에 있음.

문제5. 영화 렌탈 테이블에서 10개 데이터만 출력하라.

문제6. 렌탈 테이블에서 inventory_id가 367인 row전체 출력하기.

문제7. customer테이블에서 customer 수 알아내기

🐕‍🦺 실습문제(SUM, AVG, MAX, MIN)

SELECT SUM(컬럼명) FROM 테이블명 ;

SELECT SUM(컬럼명) FROM 테이블명  WHERE 조건문;

 

문제1. Payment 테이블에서 렌탈비용 합계, 평균, 최대값, 최소값 구하기, payment 테이블은 렌탈비용 포함한 정보를 담고 있는 테이블이다.

문제2. 영화 렌탈 테이블에서 inventory_id가 367이고, staff_id가 1인 레코드 전체 출력하기

정리
LIMIT 숫자  → 일부 데이터만 추출
DISTINCT 컬럼 → 중복 데이터 제거 
COUNT(컬럼명) → 레코드 수 출력
집계함수: SUM, AVG, MAX, MIN(컬럼명)