SQL에서 제일 기본이 되는 건 SELECT랑 WHERE이다.
실무에서 진짜 많이 쓰이니까, 이거부터 제대로 익혀두자.
| SELECT · WHERE 기본 문법
SELECT 열이름
FROM 테이블이름
WHERE 조건;
| 실습용 테이블부터 등록
SQL은 직접 쿼리를 실행하고 수정해보는 게 핵심!
아직 실습 환경이 없다면, 아래 글을 참고해 DBeaver와 MySQL부터 먼저 세팅해 보자
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL
IT 직장에서의 N년차, SQL은 선택이 아니라 필수라는 것을 느겼다.24년에 자격증 취득하고 실무에서 조금씩 써먹는 중인데 처음에 겁먹었던 것이 무색하게 할 만하다. 앞으로의 포스팅들은 SQL을
happynestledays.tistory.com
CREATE DATABASE IF NOT EXISTS sql_blog;
USE sql_blog;
CREATE TABLE user_activity_log (
log_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
action VARCHAR(50),
device VARCHAR(50),
created_at DATETIME
);
INSERT INTO user_activity_log (user_id, action, device, created_at) VALUES
(101, 'login', 'mobile', '2024-04-18 08:12:00'),
(102, 'search', 'web', '2024-04-18 09:05:00'),
(101, 'purchase', 'mobile', '2024-04-18 09:40:00'),
(103, 'logout', 'web', '2024-04-18 10:15:00'),
(102, 'purchase', 'mobile', '2024-04-18 11:00:00'),
(101, 'search', 'web', '2024-04-18 11:30:00');
1. 기본 예제
● 조건 : 행동(action)이 'purchase'인 데이터만 조회
SELECT user_id, action, created_at
FROM user_activity_log
WHERE action = 'purchase';
2. 실무 응용 : 조건 2개 사용
● 조건 : 'mobile' 기기에서 'search'한 데이터만 조회
※ 조건이 두 개 이상일 때는 AND 사용
※ 조건에 맞는 검색결과 값 없음
SELECT user_id, action, device
FROM user_activity_log
WHERE action = 'search' AND device = 'mobile';
3. 실무 응용 : 시간 조건 걸기
● 조건 : 2024-04-18 10:00:00 이후의 데이터만 조회
※ 주로 최근 데이터만 뽑을 때 많이 사용
SELECT *
FROM user_activity_log
WHERE created_at >= '2024-04-18 10:00:00';
4. 주의 : 문자형 조건에 따옴표 누락
● 조건 : action이 'purchase'인 데이터 조회
※ 문자형 조건은 반드시 '값' 형태로 써야 함
SELECT * FROM user_activity_log
WHERE action = purchase; -- ❌ 오류 발생
SELECT * FROM user_activity_log
WHERE action = 'purchase'; -- ✅
5. 난이도UP : AND, OR 동시 사용
● 조건 : 웹에서 'search' 한 사용자 또는 모바일에서 'purchase' 한 사용자 로그만 조회
※ AND, OR가 섞이면 괄호가 없을 경우 해석 우선순위는 AND가 먼저다
조건이 섞일 땐 무조건 괄호로 명확하게 나눠서 의도한 범위를 정확히 지정해야 함
SELECT * FROM user_activity_log
WHERE (action = 'search' AND device = 'web')
OR (action = 'purchase' AND device = 'mobile'); -- ✅
오늘 하루도 고생했다
'5분 SQL' 카테고리의 다른 글
[MYSQL 05] GROUP BY / COUNT / SUM / AVG 개념과 실습 (0) | 2025.04.24 |
---|---|
[MYSQL 04] IS NULL / IS NOT NULL / IFNULL / COALESCE 개념과 실습 (0) | 2025.04.23 |
[MYSQL 03] IN / BETWEEN / LIKE 개념과 실습 (0) | 2025.04.22 |
[MYSQL 02] ORDER BY, LIMIT 개념과 실습 (0) | 2025.04.21 |
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL (0) | 2025.04.19 |