웹개발/SQL(mySQL)

MySQL SELECT 문 사용방법

bergerac 2025. 6. 17. 09:11

SELECT 문이란?

SQL에서 데이터를 조회할 때 사용하는 키워드다. 즉, 테이블에 저장된 데이터를 "읽어오는" 역할을 한다.

많은 초보자들이 SQL을 '어떻게 가져올까?'에 집중하지만, 사실 핵심은 '무엇을 가져올 것인가'이다. 이 점에서 SELECT는 단순하지만 데이터 활용의 출발점이 된다.

 

SELECT 문 기본 구조 (작성 순서)

SELECT 열목록
FROM 테이블명
WHERE 조건식
GROUP BY 그룹화_열
HAVING 그룹_조건
ORDER BY 정렬_열
LIMIT 제한_숫자

각 키워드는 순서가 정해져 있으며, 선택적으로 생략 가능하다. 하지만 MySQL 내부에서 실행되는 처리 순서는 아래와 같다

FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

 

1. 전체 컬럼 조회

SELECT * FROM members;

*은 모든 컬럼을 가져온다는 뜻이다. 이는 전체를 가지고 오는 것이기 때문에 필요한 컬럼만 명시적으로 가져오는 것이 좋다.

SELECT name, contact FROM members;

위와 같이 표시하면 member 이라는 테이블에서 name 과 contact 의 컬럼만 가져온다는 뜻이다.

 

2. 컬럼에 별칭 부여하기(alias)

컬럼명을 출력 시 읽기 쉬운 형태로 변경하고 싶다면 AS 키워드를 사용하면 된다.

SELECT 
	member_id AS 고유번호,
	name AS '회원 이름',
	contact AS '회원 연락처'
FROM members;

AS는 생략도 가능하지만, 가독성을 위해 사용하는 걸 추천한다. 공백이 포함된 별칭은 작은따옴표(') 또는 큰따옴표(")로 감싸야 한다.

 

3. WHERE 절 : 조건을 이용한 필터링

조건문을 통해 특정 데이터만 골라서 조회할 수 있다.

SELECT name, points FROM members
WHERE points > 200;

자주 사용되는 조건 연산자는 다음과 같다:

  • = : 같음
  • != 또는 <> : 같지 않음
  • > : 초과
  • < : 미만
  • >= : 이상
  • <= : 이하

여러 조건을 결합하고 싶을 때는 논리 연산자를 사용한다:

  • AND: 모든 조건이 참일 때
  • OR: 하나라도 참이면
  • NOT: 조건의 반대
SELECT * FROM members
WHERE area_code = 'Jeju' AND points > 400;

 

4. NULL 값 다루기

NULL은 값이 없는 상태를 의미하며, 일반 연산자로 비교할 수 없다.

 

  • IS NULL: NULL인지 확인
  • IS NOT NULL: NULL이 아닌지 확인

 

SELECT * FROM members
WHERE points IS NULL;

5. 범위와 포함 조건

BETWEEN A AND B

숫자나 날짜가 특정 범위에 속하는지 확인할 때 사용한다.

SELECT * FROM members
WHERE points BETWEEN 200 AND 400;

IN 연산자

OR 조건을 간단하게 표현할 수 있다.

SELECT * FROM members
WHERE area_code IN ('Seoul', 'Busan', 'Jeju');

 

6. LIKE 연산자 : 문자열 검색

LIKE는 문자열에서 일부 패턴을 검색할 때 사용한다. 와일드카드를 활용해 유연한 검색이 가능하다.

  • % : 0개 이상의 임의의 문자
  • _ : 정확히 1개의 임의의 문자
-- 이름이 'J'로 시작하는 사람
SELECT * FROM members
WHERE name LIKE 'J%';

-- 이름이 4글자인 사람
SELECT * FROM members
WHERE name LIKE '____';

-- 이름 안에 'un'이 포함된 사람
SELECT * FROM members
WHERE name LIKE '%un%';

 

7. 날짜 조건 조회

날짜는 'YYYY-MM-DD' 형식으로, 시간은 'HH:MM:SS'로 표현한다. 기본 비교는 =, !=, >, <처럼 일반 연산자를 사용할 수 있고, BETWEEN도 자주 사용된다.

-- 특정 날짜 조회
SELECT * FROM members
WHERE join_date = '2022-01-02';

-- 날짜 범위 조회
SELECT * FROM members
WHERE join_date BETWEEN '2023-06-01' AND '2025-01-01';

 또는 날짜의 일부(연, 월, 일)만 조건으로 추출할 수도 있다.

SELECT * FROM members
WHERE YEAR(join_date) = 2022;

SELECT * FROM members
WHERE MONTH(join_date) = 5;

 

8. 현재 날짜 기준 조회

CURDATE() 또는 NOW()를 사용하면 현재 날짜 및 시간을 기준으로 조건을 만들 수 있다.

-- 오늘 이전에 가입한 회원
SELECT * FROM members
WHERE join_date < CURDATE();

'웹개발 > SQL(mySQL)' 카테고리의 다른 글

MySQL - JOIN 이해하기  (0) 2025.06.19
MySQL SubQuery 활용  (1) 2025.06.18
MySQL DML 문법 (INSERT, UPDATE, DELETE)  (0) 2025.06.16
MySQL 제약조건(Constraints)  (4) 2025.06.15
무결성(Integrity)  (1) 2025.06.14