Database

Database. 2일차 - DML 기초(데이터 조회 - SELECT FROM)

머용? 2024. 2. 19. 13:39

SELECT FROM 문을 이용한 데이터 조회

  1. 기본적인 조회 - SELECT
    • 모든 칼럼조회
      SELECT * FROM users;
    • 특정 칼럼만 조회
      SELECT user_id, username, email FROM users;
  2. 중복 데이터 삭제 - DISTINCT
    • 중복 제거한 나이 조회
      SELECT DISTINCT age FROM users;
  3. 일시적으로 추가 컬럼 만들기 - AS
    • 나이와 나이에 100을 곱한 값을 조회
      SELECT age, age * 100 FROM users;
    • AS를 사용하여 새로운 컬럼명 정의
      SELECT age, age * 100 AS age100 FROM users;
  4. 데이터 정렬하기 - ORDER BY
    • 나이순으로 오름차순 정렬
      SELECT * FROM users ORDER BY age;
    • 나이순으로 내림차순 정렬
      SELECT * FROM users ORDER BY age DESC;
    • 여러 기준으로 정렬(ASC : 오름차순, DESC : 내림차순)
      SELECT * FROM users ORDER BY age ASC, username DESC; -- 나이를 기준으로 오름차순 정렬 후에 유저네임을 기준으로 내림차순 정렬.
  5. 조건문 - WHERE
    • 특정 조건에 맞는 데이터 조회
      SELECT * FROM users WHERE age = 30;
    • 특정 조건 이상 데이터 조회
      SELECT * FROM users WHERE age >= 30;
    • AND , OR 을 사용한 복합 조건
      SELECT * FROM users WHERE age = 30 AND name = 'alice';
      SELECT * FROM users WHERE age = 30 OR name = 'john';
    • NOT 을 사용한 부정 조건
      SELECT * FROM users WHERE NOT age = 30;
    • BETWEEN 을 사용한 범위 지정
      SELECT * FROM users WHERE age BETWEEN 20 AND 30;
  6. 특정 개수 제한 - LIMIT
    • 상위 5개의 데이터 조회
      SELECT * FROM users LIMIT 5;
    • 10번째부터 5개의 데이터 조회 (페이징)
      SELECT * FROM users LIMIT 10, 5;
    1. 결과 그룹핑 - GROUP BY
    • 나이별로 그룹화하여 그룹별 데이터 개수 조회
      SELECT age, COUNT(*) AS user_count FROM users GROUP BY age;
  7. 특정 조건에 따라 값 변환 - CASE WHEN
    • 나이가 19 이상인 경우 '성인', 미만인 경우 '미성년자'로 변환하여 조회
      SELECT username, age,
      CASE WHEN age >= 19 THEN '성인' ELSE '미성년자' END AS age_group
      FROM users;
  8. 여러 테이블 조인 - JOIN
    • users 테이블과 orders 테이블을 user_id 기준으로 조인
      SELECT users.name, users.age, orders.order_id
      FROM users
      JOIN orders ON users.user_id = orders.user_id;
  9. 결과 내림차순으로 순위 부여 - ROW_NUMBER()
    • 나이에 따라 내림차순으로 순위 부여하여 조회하기
      SELECT username, age, ROW_NUMBER() OVER (ORDER BY age DESC) AS 'rank'
      FROM users;