Database - Chapter 3-15. SQL (DML) 기초(데이터 조회)

2025. 3. 20. 12:57·Database

 

🚀 SQL 데이터 조회(SELECT) 완벽 정리

SQL에서 데이터를 조회하는 방법을 기본 조회부터 고급 기능까지 한눈에 이해할 수 있도록 정리했습니다. 🎯
이 글을 통해 효율적인 데이터 검색과 정렬, 조건 적용 방법을 익혀보세요!


📌 1. 기본적인 데이터 조회 (SELECT)

🔹 개념

  • SELECT 문은 테이블에서 데이터를 검색하는 가장 기본적인 방법입니다.
  • 특정 컬럼만 조회하거나 모든 데이터를 가져올 수 있습니다.

✅ 모든 컬럼 조회

sql
SELECT * FROM users;

🔹 설명: *을 사용하면 테이블의 모든 컬럼을 조회할 수 있습니다.

✅ 특정 컬럼만 조회

sql
 
 
SELECT user_id, username, email FROM users;
 

🔹 설명: 필요한 컬럼만 선택하여 데이터를 가져올 수 있습니다.


📌 2. 중복 데이터 제거 (DISTINCT)

🔹 개념

  • DISTINCT는 중복된 데이터를 제거하고 조회할 때 사용됩니다.

✅ 중복된 나이(age) 제거 후 조회

sql
 
 
SELECT DISTINCT age FROM users;

🔹 설명: 중복된 나이 값이 제거된 고유한 나이 목록이 반환됩니다.


📌 3. 새로운 컬럼을 만들어 조회 (AS - 별칭 지정)

🔹 개념

  • AS를 사용하면 기존 컬럼 값에 연산을 적용하여 새로운 컬럼을 만들어 표시할 수 있습니다.

✅ 나이에 100을 곱한 값을 새로운 컬럼으로 표시

sql
 
 
SELECT age, age * 100 FROM users;

🔹 설명: age * 100 값을 계산하여 표시하지만, 컬럼명이 자동으로 생성됩니다.

✅ AS를 활용하여 새로운 컬럼명 지정

sql
 
SELECT age, age * 100 AS age100 FROM users;

🔹 설명: AS를 사용하면 새로운 컬럼명(age100)을 지정할 수 있어 가독성이 향상됩니다.


📌 4. 데이터 정렬 (ORDER BY)

🔹 개념

  • 데이터를 원하는 순서대로 정렬할 수 있습니다.
  • ASC(오름차순) 또는 DESC(내림차순) 옵션을 사용합니다.

✅ 나이순으로 오름차순 정렬

sql
 
SELECT * FROM users ORDER BY age;

🔹 설명: 나이가 작은 순서부터 큰 순서로 정렬됩니다.

✅ 나이순으로 내림차순 정렬

sql
 
SELECT * FROM users ORDER BY age DESC;

🔹 설명: 나이가 큰 순서부터 작은 순서로 정렬됩니다.

✅ 여러 기준으로 정렬 (나이 오름차순, 생성일 내림차순)

sql
 
SELECT * FROM users ORDER BY age ASC, created DESC;

🔹 설명:

  1. 먼저 age를 오름차순(ASC) 정렬
  2. 나이가 같은 경우 created를 내림차순(DESC) 정렬

📌 5. 조건을 적용한 데이터 조회 (WHERE)

🔹 개념

  • WHERE 절을 사용하면 특정 조건을 만족하는 데이터만 검색할 수 있습니다.

✅ 특정 값과 일치하는 데이터 조회

sql
 
SELECT * FROM users WHERE age = 30;

🔹 설명: age 값이 30인 사용자만 조회됩니다.

✅ 특정 값 이상/이하 데이터 조회

sql
 
SELECT * FROM users WHERE age >= 30;

🔹 설명: 나이가 30 이상인 사용자만 조회됩니다.

✅ AND, OR 연산을 활용한 복합 조건 조회

sql
 
SELECT * FROM users WHERE age = 33 AND name = 'Leo';
SELECT * FROM users WHERE age = 33 OR name = 'Leo';
 

🔹 설명:

  • AND는 모든 조건을 만족하는 데이터만 조회
  • OR는 하나라도 조건을 만족하면 조회

✅ NOT을 사용한 부정 조건 조회

sql
 
SELECT * FROM users WHERE NOT age = 33;

🔹 설명: age가 33이 아닌 데이터만 조회됩니다.

✅ 특정 범위 데이터를 조회 (BETWEEN 사용)

sql
 
SELECT * FROM users WHERE age BETWEEN 20 AND 25;

🔹 설명: age 값이 20 이상 25 이하인 데이터만 조회됩니다.


📌 6. 조회 개수 제한 (LIMIT)

🔹 개념

  • LIMIT을 사용하면 결과 개수를 제한할 수 있습니다.

✅ 상위 5개의 데이터만 조회

sql
 
SELECT * FROM users LIMIT 5;

🔹 설명: 최대 5개의 데이터만 반환됩니다.

✅ 페이징 처리 (10번째부터 5개 조회)

sql
 
SELECT * FROM users LIMIT 10, 5;

🔹 설명:

  • 10번째 데이터부터 5개만 조회
  • 페이징(Pagination) 구현에 활용

📌 7. 데이터 그룹화 (GROUP BY)

🔹 개념

  • 동일한 값들을 그룹으로 묶어 집계 함수(COUNT, SUM 등)와 함께 사용

✅ 나이별 사용자 수 조회

sql
 
SELECT age, COUNT(*) AS user_count FROM users GROUP BY age;

🔹 설명: 나이가 같은 사용자끼리 그룹화하여 연령별 사용자 수를 조회합니다.


📌 8. 조건에 따라 다른 값 표시 (CASE WHEN)

🔹 개념

  • CASE WHEN을 사용하면 조건에 따라 특정 값을 반환할 수 있습니다.

✅ 나이가 30 이상이면 '성인', 미만이면 '미성년자'로 변환

sql
 
SELECT
  name,
  age,
  CASE WHEN age >= 30 THEN '성인' ELSE '미성년자' END AS age_group
FROM users;

🔹 설명:

  • 나이가 30 이상이면 '성인', 그렇지 않으면 **'미성년자'**로 표시됩니다.

📌 9. 여러 테이블의 데이터 결합 (JOIN)

🔹 개념

  • JOIN을 사용하면 여러 테이블의 데이터를 결합하여 조회할 수 있습니다.

✅ users 테이블과 orders 테이블을 user_id 기준으로 조인

sql
 
SELECT users.name, users.age, orders.order_id
FROM users
JOIN orders ON users.user_id = orders.user_id;

🔹 설명:

  • users와 orders 테이블을 user_id 기준으로 연결하여 조회

📌 10. 데이터에 순위 부여 (ROW_NUMBER)

🔹 개념

  • ROW_NUMBER()를 사용하면 특정 정렬 기준에 따라 순위를 매길 수 있음

✅ 나이를 기준으로 순위 부여

sql
 
SELECT
  name,
  age,
  ROW_NUMBER() OVER (ORDER BY age DESC) AS rank
FROM users;

🔹 설명:

  • 나이가 가장 많은 사람부터 순위를 매겨서 조회

'Database' 카테고리의 다른 글

Database - Chapter 3-17. SQL (DML) 기초(데이터 제거)  (0) 2025.03.20
Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)  (0) 2025.03.20
Database - Chapter 3-14. SQL (DML) 기초(테이블생성,테이터생성)  (0) 2025.03.20
Database - Chapter 2-13. MySQL 데이터 타입  (0) 2025.03.19
Database - Chapter 2-12. MySQL 데이터베이스 Schema 구성 (DDL)  (0) 2025.03.19
'Database' 카테고리의 다른 글
  • Database - Chapter 3-17. SQL (DML) 기초(데이터 제거)
  • Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)
  • Database - Chapter 3-14. SQL (DML) 기초(테이블생성,테이터생성)
  • Database - Chapter 2-13. MySQL 데이터 타입
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (612)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (10)
      • 특강 (31)
      • 기술블로그 (32)
      • 기술블로그-Fastapi편 (0)
      • 기술블로그-Django편 (143)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (66)
      • Fastapi (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Database - Chapter 3-15. SQL (DML) 기초(데이터 조회)
상단으로

티스토리툴바