
SQL에서 데이터 개수 세기, 중복 제거, 실행 순서, 디버깅 팁 등 쿼리 작성에 꼭 필요한 핵심 개념들을 깔끔하게 정리한 요약입니다.
데이터 개수를 세는 함수
SELECT COUNT(birthdate) AS count_birthdates
FROM people;
birthdate가 NULL이 아닌 레코드 수를 셈AS로 alias(별칭)을 주면 결과가 더 읽기 쉬움SELECT COUNT(name) AS count_names, COUNT(birthdate) AS count_birthdates
FROM people;
COUNT(*) 사용:SELECT COUNT(*) AS total_records
FROM people;
중복 제거 → 유일한 값만 반환
SELECT DISTINCT language
FROM films;
films 테이블의 언어(language) 종류만 유일하게 반환COUNT()와 함께 사용:SELECT COUNT(DISTINCT birthdate) AS count_distinct_birthdates
FROM people;
SQL은 우리가 쓰는 순서대로 실행되지 않음
SELECT name
FROM people
LIMIT 10;
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT 순으로 처리됨SELECT nme FROM people;
➡ nme는 존재하지 않으므로 에러 발생
SELECT title, country duration FROM films;
➡ country와 duration 사이에 쉼표 누락됨
SELCT title FROM films;
➡ SELECT 철자 오류
➡ 자주 틀리는 부분: 철자, 대소문자, 쉼표 등
코드를 더 깔끔하고 읽기 쉽게 쓰는 법
select title, release_year, country from films limit 3;
SELECT
title,
release_year,
country
FROM films
LIMIT 3;
📚 참고: SQL Style Guide
SELECT title FROM films;
SELECT title, "release year", country
FROM films
LIMIT 3;
SELECT film_id, "facebook likes"
FROM reviews;
"facebook likes" 같이 공백 있는 필드명을 사용할 땐 반드시 큰따옴표로 감싸야 함| 개념 | 설명 | 쿼리 예시 |
|---|---|---|
COUNT() | 값이 있는 필드 수 | COUNT(birthdate) |
COUNT(*) | 전체 행 수 | COUNT(*) |
DISTINCT | 중복 제거 | SELECT DISTINCT language |
| SQL 순서 | 실제 실행은 FROM → SELECT → LIMIT 순 | |
| 스타일 가이드 | 가독성 향상 | 줄바꿈, 키워드 대문자 |
| 비표준 필드 | " "로 감싸기 | "facebook likes" |
| 세미콜론 | 문장 끝 표시 | ... LIMIT 3; |