개발 & 기술/데이터베이스

SQL 입문 5분 정리 — 비개발자도 SELECT부터

Lumin 2026. 6. 18. 20:29
반응형

요즘 회사에서 "SQL 좀 다룰 줄 알면 좋겠다"는 말이 부쩍 늘었습니다. 마케팅·기획·운영 직군에서도 데이터를 직접 뽑아 보는 게 당연해진 분위기죠.

저도 처음 SQL을 봤을 때는 외계어 같았습니다. 그런데 막상 핵심만 추리면 정말 단순합니다. 엑셀을 다뤄본 분이라면 30분이면 첫 문장을 읽고 쓸 수 있습니다.

이 글은 코딩을 한 번도 안 해본 분을 기준으로, 가장 자주 쓰는 SELECT 문 하나를 중심으로 SQL의 큰 그림을 잡아드리는 글입니다. 설치나 환경 설정 없이, 개념과 문법만 가볍게 훑겠습니다.

SQL이 뭐길래 다들 배우라고 할까

SQL은 데이터베이스에 "이런 데이터 좀 보여줘"라고 말을 거는 표준 언어입니다. 1974년에 처음 만들어진 이래 지금까지 거의 모든 회사 데이터 시스템이 이 언어를 씁니다.

데이터베이스라는 단어가 어렵게 들리지만, 실은 잘 정리된 엑셀 파일들의 묶음이라고 생각하시면 됩니다. 시트 하나하나가 "테이블"이고, 그 안에 행과 열이 있습니다.

차이가 있다면 데이터베이스는 수억 줄짜리 시트도 다룰 수 있고, 여러 사람이 동시에 접근해도 안 깨진다는 점입니다. 엑셀로 10만 줄만 넘어도 버벅대는 걸 떠올리시면 됩니다.

비교 항목 엑셀 데이터베이스
다루는 단위 시트 테이블
한 줄 행(Row) 레코드(Record)
한 칸의 종류 열(Column) 필드(Field)
데이터 양 수만 줄에서 한계 수억 줄도 가능
조작 방법 마우스 클릭·함수 SQL 문장

SQL은 그 테이블들에서 원하는 데이터를 꺼내거나, 집어넣거나, 바꾸거나, 지우는 명령어입니다. 그중 비개발자가 99% 쓰게 되는 게 "꺼내기", 즉 SELECT입니다.

5분이면 외워지는 기본 구조

SQL 문장은 영어 문법처럼 정해진 순서가 있습니다. 외울 건 딱 6개 키워드입니다.

SELECT  어떤 칸을
FROM    어느 테이블에서
WHERE   어떤 조건으로
GROUP BY 무엇끼리 묶어서
ORDER BY 무엇 기준으로 정렬해서
LIMIT   몇 줄만 보여줘

영어 문장 그대로 읽으면 의미가 꽤 통합니다. "Select these columns from this table where this condition" 같은 식이죠.

여기서 진짜 자주 쓰는 건 위쪽 세 줄(SELECT / FROM / WHERE)입니다. 나머지는 필요할 때만 붙입니다.

💡 SQL은 대소문자를 구분하지 않습니다. select로 써도 작동하지만, 관례상 명령어는 대문자로 씁니다. 사람이 읽을 때 명령어와 데이터를 구분하기 좋아서입니다.

SELECT 한 줄 직접 읽어보기

가장 단순한 SQL 문장 하나를 봅시다. members라는 테이블에 회원 명단이 들어 있다고 가정합니다.

SELECT name, age
FROM members
WHERE age >= 30;

이 문장은 "members 테이블에서 나이가 30살 이상인 사람의 이름과 나이를 보여줘"라는 뜻입니다. 마지막 세미콜론(;)은 "문장 끝"이라는 표시입니다.

한 줄씩 풀어보면 이렇습니다.

  • SELECT name, age → 가져올 칸 이름. 쉼표로 여러 개 나열 가능
  • FROM members → 어느 테이블에서 가져올지
  • WHERE age >= 30 → 거를 조건. 엑셀의 필터 기능과 같은 역할

모든 칸을 다 보고 싶으면 (별표)를 씁니다. SELECT FROM members;라고 하면 전체 칸이 다 나옵니다. 별표는 "전부"라는 뜻의 와일드카드입니다.

자주 쓰는 조건과 함수 묶음

WHERE 뒤에 붙이는 조건이 SQL의 진짜 활용 포인트입니다. 자주 쓰는 패턴을 정리하면 이 정도입니다.

조건 표현 의미 예시
= 같다 city = '서울'
!= 또는 <> 다르다 status != '탈퇴'
>, <, >=, <= 크기 비교 price >= 10000
BETWEEN A AND B A 이상 B 이하 age BETWEEN 20 AND 29
IN (...) 목록 안에 포함 city IN ('서울','부산')
LIKE 부분 일치 name LIKE '김%'
IS NULL 값이 비어있음 phone IS NULL

문자열은 작은따옴표('서울')로 감싸고, 숫자는 그냥 씁니다. 이 규칙은 거의 모든 데이터베이스에서 똑같습니다.

조건을 여러 개 붙이고 싶으면 AND(그리고) / OR(또는)로 연결합니다.

SELECT name
FROM members
WHERE city = '서울' AND age >= 30;

이 문장은 "서울에 살고 30살 이상인 회원의 이름"을 뽑아옵니다. 일상 한국어 그대로 읽히죠.

집계 — 평균·합계·개수 구하기

데이터를 그냥 보여주는 것보다 "총 몇 명이지?", "평균이 얼마지?"가 더 자주 필요한 질문입니다. 이걸 집계 함수가 해줍니다.

SELECT COUNT(*), AVG(age), MAX(age)
FROM members
WHERE city = '서울';

이 문장은 서울 회원의 총 인원수, 평균 나이, 최고 나이를 한 번에 뽑습니다. 엑셀의 COUNTA, AVERAGE, MAX 함수와 똑같은 역할입니다.

함수 역할 엑셀 대응
COUNT(*) 줄 개수 COUNTA
SUM() 합계 SUM
AVG() 평균 AVERAGE
MAX() / MIN() 최대·최소 MAX/MIN

한 단계 더 나가면 GROUP BY가 등장합니다. "도시별로 인원수를 보고 싶다"처럼 묶어서 집계할 때 씁니다.

SELECT city, COUNT(*)
FROM members
GROUP BY city;

엑셀의 피벗테이블과 정확히 같은 일을 합니다. 행 영역에 도시, 값 영역에 인원수를 끌어다 놓은 그 결과물이죠.

어디서 연습하면 좋을까

설치 없이 브라우저에서 바로 SQL을 쳐볼 수 있는 사이트가 몇 군데 있습니다. 비개발자가 가볍게 시작하기에는 이쪽이 훨씬 편합니다.

  • SQLBolt (sqlbolt.com): 영문 사이트지만, 챕터마다 작은 테이블이 주어지고 미션을 풀어가는 구조라 직관적입니다
  • 프로그래머스 SQL 고득점 Kit: 한국어 문제집. 실무 감각 키우기 좋습니다
  • 해커랭크 SQL: 난이도별로 정리돼 있어 단계적 학습에 좋습니다

처음에는 위에서 다룬 SELECT / FROM / WHERE만 가지고도 풀 수 있는 문제가 꽤 많습니다. 한 번에 다 외우려 하지 마시고, 막힐 때마다 이 글을 다시 펼쳐보시는 정도로 충분합니다.

💡 처음엔 문법 오류가 자주 납니다. 세미콜론 빠뜨림, 따옴표 짝 안 맞음, 칸 이름 오타가 9할입니다. 에러 메시지를 ChatGPT에 그대로 붙여넣으면 거의 다 풀립니다.

자주 막히는 부분

입문자가 공통적으로 한 번씩은 헤매는 지점이 있습니다. 미리 알고 가면 시간이 절약됩니다.

1. 큰따옴표 vs 작은따옴표 SQL에서 문자열은 작은따옴표(')로 감쌉니다. 엑셀이나 워드에서 복붙하면 큰따옴표(")나 한국식 따옴표(', ")로 바뀌어 들어가는 경우가 많은데, 이러면 에러가 납니다.

2. 칸 이름에 한글·공백이 있을 때 회원 이름처럼 공백이 들어간 칸 이름은 백틱(` ``)이나 큰따옴표로 감싸줘야 합니다. 가능하면 영문 칸 이름을 쓰는 게 편합니다.

3. NULL은 0이 아닙니다 빈 값을 뜻하는 NULL은 0이나 빈 문자열과 다릅니다. WHERE phone = NULL이라고 쓰면 작동하지 않고, WHERE phone IS NULL이라고 써야 합니다. 입문자가 가장 많이 헤매는 부분입니다.

4. 데이터베이스마다 사투리가 있다 SQL은 표준이지만 MySQL·PostgreSQL·Oracle·SQLite마다 세부 문법이 조금씩 다릅니다. 입문 단계에서는 신경 쓸 필요 없고, 한 가지(보통 MySQL)로 시작해 익숙해지면 됩니다.

마무리

SQL은 막상 뚜껑을 열면 영어 한 문장 읽는 수준의 단순한 언어입니다. SELECT 어떤 칸 FROM 어느 테이블 WHERE 어떤 조건 — 이 한 줄만 손에 익혀도 회사에서 데이터를 직접 들여다보는 일이 훨씬 가벼워집니다.

오늘 다룬 키워드 6개(SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT)와 집계 함수 4개(COUNT, SUM, AVG, MAX)면 실무에서 쓰는 SQL의 70~80%는 커버됩니다. 나머지 20%는 필요할 때 그때그때 검색해도 늦지 않습니다.

다음 글에서는 두 개 이상의 테이블을 합쳐 보는 JOIN을 다뤄볼 예정입니다. 그전에 SQLBolt 1~5장 정도만 가볍게 풀어보시면 다음 글이 훨씬 수월하게 읽히실 겁니다.

반응형