[MySQL]특정 조건의 데이터 조회

2025. 2. 16. 22:44·DBMS/MySQL

SELECT, FROM, WHERE

SELECT: 조회할 열(column)을 선택
FROM: 조회할 테이블(table)을 지정
WHERE: 조건을 지정해 필요한 데이터만 필터링

-- 모든 20세 이상의 회원 이름과 나이를 조회
SELECT name, age
FROM usertbl
WHERE age >= 20;

ORDER BY, DESC

ORDER BY: 결과를 지정한 열 기준으로 정렬

DESC: 내림차순 정렬(기본은 ASC, 오름차순)

-- 나이를 기준으로 내림차순으로 회원 조회
SELECT name, age
FROM usertbl
ORDER BY age DESC;

DISTINCT

중복된 값을 제거하고 고유한 결과만 반환

-- 중복 없이 모든 도시 목록 조회
SELECT DISTINCT city
FROM usertbl;

LIMIT

결과에서 반환할 행의 개수를 제한

-- 상위 5명의 회원 조회
SELECT name, age
FROM usertbl
LIMIT 5;

GROUP BY, SUM(), WITH ROLLUP

GROUP BY: 같은 값을 가진 행을 그룹화

SUM(): 그룹별 합계 계산

WITH ROLLUP: 그룹화된 결과에 소계와 총계를 추가

-- 지역별 회원 수와 총합 계산
SELECT city AS '지역', COUNT(*) AS '지역별 회원 수'
FROM usertbl
GROUP BY city WITH ROLLUP;

HAVING

GROUP BY 절 이후의 조건을 지정, WHERE과 다르게 데이터가 그룹화된 후에 필터링

-- 회원 수가 10명 이상인 지역 조회
SELECT '지역', COUNT(*) AS '지역별 회원 수'
FROM usertbl
GROUP BY city
HAVING COUNT(*) >= 10;

BETWEEN AND

조건문 대신 특정 범위를 간편하게 검색할 때 사용

-- 20세부터 30세 사이의 회원 조회
SELECT name, age
FROM usertbl
WHERE age >= 20 AND age <= 30; -- 조건문 사용
WHERE age BETWEEN 20 AND 30; -- BETWEEN AND 사용

IN

명시된 값 중 하나라도 일치 시 참, BETWEEN AND로 처리할 수 없는 문자열 등 여러 값을 간편하게 조건으로 지정할 때 사용

-- 서울, 부산, 대구에 거주하는 회원 조회
SELECT name, city
FROM usertbl
WHERE city='서울' OR city='부산' OR city='대구'; -- 조건문 사용
WHERE city IN ('서울', '부산', '대구'); -- IN 사용

LIKE

문자열 패턴을 검색할 때 사용하며, 주로 와일드카드(%, _)와 함께 사용
%: 0개 이상의 모든 문자
_: 1개의 임의 문자

-- '권'으로 시작하는 회원 조회
SELECT name
FROM users
WHERE name LIKE '권%';

-- 두 번째 글자가 '지'인 4글자 이름 조회
SELECT name
FROM users
WHERE name LIKE '_지__';

ANY

서브쿼리 결과 중 하나라도 조건을 만족하면 참(OR)

-- 서울에 거주하는 회원 중 최소 1명보다 나이가 많은 회원 조회
SELECT name, age
FROM usertbl
WHERE age > ANY (
  SELECT age
  FROM usertbl
  WHERE addr='서울'
);

ALL

서브쿼리 결과의 모든 값에 대해 조건을 만족하면 참(AND)

-- 서울에 거주하는 모든 회원보다 나이가 많은 회원 조회
SELECT name, age
FROM usertbl
WHERE age > ALL (
  SELECT age
  FROM usertbl
  WHERE addr='서울'
);

'DBMS > MySQL' 카테고리의 다른 글

[MySQL]문자와 문자 연결  (0) 2025.02.25
[MySQL]형 변환  (0) 2025.02.25
[MySQL]중복 키(ON DUPLICATE KEY UPDATE, IGNORE)  (0) 2025.02.20
[MySQL]데이터 삭제, 테이블 삭제(DELETE, DROP, TRUNCATE)  (0) 2025.02.20
[MySQL]테이블 생성, 데이터 추가, 데이터 수정(CREATE, INSERT, UPDATE)  (0) 2025.02.20
'DBMS/MySQL' 카테고리의 다른 글
  • [MySQL]형 변환
  • [MySQL]중복 키(ON DUPLICATE KEY UPDATE, IGNORE)
  • [MySQL]데이터 삭제, 테이블 삭제(DELETE, DROP, TRUNCATE)
  • [MySQL]테이블 생성, 데이터 추가, 데이터 수정(CREATE, INSERT, UPDATE)
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[MySQL]특정 조건의 데이터 조회
상단으로

티스토리툴바