SELECT *
모든 컬럼의 데이터를 조회한다
테이블에 존재하는 전체 컬럼을 모두 조회할 때 사용하는 가장 기본적인 조회 방식이다.
Card
emy
← 탐색으로 돌아가기
SQL의 가장 기본이 되는 SELECT 문과 데이터 조회 흐름을 익힌다. 데이터를 읽는 순서, WHERE 조건 필터링, 정렬, 집계 함수 같은 핵심 문법을 자연스럽게 이해하게 된다. SQLD 초반 문제 대부분이 여기서 출제되기 때문에 단순 암기가 아니라 “쿼리가 실제로 어떻게 실행되는지” 감각을 만드는 것이 목표다. 특히 GROUP BY, HAVING, NULL 처리처럼 초보자가 많이 헷갈리는 부분을 실전 중심으로 익히게 된다.
무료 체험 퀴즈
SELECT *
모든 컬럼의 데이터를 조회한다
테이블에 존재하는 전체 컬럼을 모두 조회할 때 사용하는 가장 기본적인 조회 방식이다.
SELECT name FROM users
users 테이블에서 name 컬럼만 조회한다
특정 컬럼만 선택해서 불필요한 데이터 조회를 줄일 수 있다.
SELECT name, age FROM users
여러 컬럼을 동시에 조회한다
쉼표로 구분해서 원하는 컬럼 여러 개를 선택할 수 있다.
SELECT DISTINCT department FROM employees
department 컬럼의 중복값을 제거하고 조회한다
DISTINCT는 중복 데이터를 하나만 남기고 조회한다.
SELECT * FROM users WHERE age > 20
age 값이 20보다 큰 데이터만 조회한다
WHERE는 조건에 맞는 행만 필터링한다.
아래 문항들은 이 학습지에 수록된 카드입니다. 로그인하면 이 학습지를 내 계정으로 복사해 카드를 한 장씩 넘기며 반복 학습할 수 있고, 숙달한 카드는 완료 표시하여 다음 세션에서 제외할 수 있습니다.
SELECT *
SELECT name FROM users
SELECT name, age FROM users
SELECT DISTINCT department FROM employees
SELECT * FROM users WHERE age > 20
SELECT * FROM users WHERE age >= 20
SELECT * FROM users WHERE age < 30
SELECT * FROM users WHERE age <= 30
SELECT * FROM users WHERE age = 25
SELECT * FROM users WHERE age != 25
SELECT * FROM users WHERE city = 'SEOUL'
SELECT * FROM users WHERE city != 'BUSAN'
SELECT * FROM users WHERE age BETWEEN 20 AND 30
SELECT * FROM users WHERE age NOT BETWEEN 20 AND 30
SELECT * FROM users WHERE age IN (20,30,40)
SELECT * FROM users WHERE age NOT IN (20,30,40)
SELECT * FROM users WHERE name LIKE 'K%'
SELECT * FROM users WHERE name LIKE '%K'
SELECT * FROM users WHERE name LIKE '%K%'
SELECT * FROM users WHERE name LIKE '_IM'
SELECT * FROM employees WHERE commission IS NULL
SELECT * FROM employees WHERE commission IS NOT NULL
SELECT * FROM users ORDER BY age
SELECT * FROM users ORDER BY age ASC
SELECT * FROM users ORDER BY age DESC
SELECT * FROM users ORDER BY city ASC, age DESC
SELECT COUNT(*) FROM users
SELECT COUNT(age) FROM users
SELECT SUM(price) FROM orders
SELECT AVG(score) FROM students
SELECT MAX(price) FROM products
SELECT MIN(price) FROM products
SELECT department, COUNT(*) FROM employees GROUP BY department
SELECT department, AVG(salary) FROM employees GROUP BY department
SELECT department, SUM(salary) FROM employees GROUP BY department
SELECT department, MAX(salary) FROM employees GROUP BY department
SELECT department, MIN(salary) FROM employees GROUP BY department
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 3
SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 3000
SELECT * FROM users WHERE age > 20 AND city = 'SEOUL'
SELECT * FROM users WHERE age > 20 OR city = 'SEOUL'
SELECT * FROM users WHERE NOT city = 'SEOUL'
SELECT * FROM users WHERE age > 20 AND gender = 'M'
SELECT * FROM products WHERE category = 'A' OR price > 10000
SELECT * FROM users WHERE name LIKE 'K%' AND age > 20
SELECT SYSDATE FROM dual
SELECT UPPER(name) FROM users
SELECT LOWER(name) FROM users
SELECT LENGTH(name) FROM users
SELECT SUBSTR(name,1,3) FROM users
SELECT ROUND(123.456,2) FROM dual
SELECT TRUNC(123.456,1) FROM dual
SELECT MOD(10,3) FROM dual
SELECT NVL(commission,0) FROM employees
SELECT CONCAT(first_name,last_name) FROM users
SELECT first_name || last_name FROM users
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM dual
SELECT TO_NUMBER('100') FROM dual
SELECT TO_DATE('20250515','YYYYMMDD') FROM dual
SELECT * FROM users WHERE ROWNUM <= 5
SELECT department, COUNT(*) cnt FROM employees GROUP BY department
SELECT name AS username FROM users
SELECT * FROM users u
SELECT price * quantity AS total_price FROM orders
SELECT COUNT(DISTINCT department) FROM employees
SELECT * FROM products WHERE price BETWEEN 1000 AND 5000
SELECT category, AVG(price) FROM products GROUP BY category
SELECT ROUND(AVG(score),2) FROM students
SELECT * FROM employees WHERE hiredate > TO_DATE('20240101','YYYYMMDD')
SELECT * FROM users WHERE city IN ('SEOUL','BUSAN')
SELECT * FROM products WHERE stock < 10
SELECT department, COUNT(*) FROM employees GROUP BY department ORDER BY department
SELECT * FROM users WHERE age > 20 AND age < 30
SELECT COUNT(*) FROM orders WHERE status = 'DONE'