5분 SQL

[MYSQL 01] SELECT, WHERE문 개념과 실습

nightquery 2025. 4. 20. 19:40

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');  -- ✅

 

 

 

 

 

 

 

오늘 하루도 고생했다