SELECT FROM 문을 이용한 데이터 조회
- 기본적인 조회 - SELECT
- 모든 칼럼조회
SELECT * FROM users; - 특정 칼럼만 조회
SELECT user_id, username, email FROM users;
- 모든 칼럼조회
- 중복 데이터 삭제 - DISTINCT
- 중복 제거한 나이 조회
SELECT DISTINCT age FROM users;
- 중복 제거한 나이 조회
- 일시적으로 추가 컬럼 만들기 - AS
- 나이와 나이에 100을 곱한 값을 조회
SELECT age, age * 100 FROM users; - AS를 사용하여 새로운 컬럼명 정의
SELECT age, age * 100 AS age100 FROM users;
- 나이와 나이에 100을 곱한 값을 조회
- 데이터 정렬하기 - 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; -- 나이를 기준으로 오름차순 정렬 후에 유저네임을 기준으로 내림차순 정렬.
- 나이순으로 오름차순 정렬
- 조건문 - 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;
- 특정 조건에 맞는 데이터 조회
- 특정 개수 제한 - LIMIT
- 상위 5개의 데이터 조회
SELECT * FROM users LIMIT 5; - 10번째부터 5개의 데이터 조회 (페이징)
SELECT * FROM users LIMIT 10, 5;
- 결과 그룹핑 - GROUP BY
- 나이별로 그룹화하여 그룹별 데이터 개수 조회
SELECT age, COUNT(*) AS user_count FROM users GROUP BY age;
- 상위 5개의 데이터 조회
- 특정 조건에 따라 값 변환 - CASE WHEN
- 나이가 19 이상인 경우 '성인', 미만인 경우 '미성년자'로 변환하여 조회
SELECT username, age, CASE WHEN age >= 19 THEN '성인' ELSE '미성년자' END AS age_group FROM users;
- 나이가 19 이상인 경우 '성인', 미만인 경우 '미성년자'로 변환하여 조회
- 여러 테이블 조인 - JOIN
- users 테이블과 orders 테이블을 user_id 기준으로 조인
SELECT users.name, users.age, orders.order_id FROM users JOIN orders ON users.user_id = orders.user_id;
- users 테이블과 orders 테이블을 user_id 기준으로 조인
- 결과 내림차순으로 순위 부여 - ROW_NUMBER()
- 나이에 따라 내림차순으로 순위 부여하여 조회하기
SELECT username, age, ROW_NUMBER() OVER (ORDER BY age DESC) AS 'rank' FROM users;
- 나이에 따라 내림차순으로 순위 부여하여 조회하기
'Database' 카테고리의 다른 글
| Database. 2일차 - DML 기초(데이터 삭제 - DELETE FROM) (0) | 2024.02.19 |
|---|---|
| Database. 2일차 - DML 기초(데이터 업데이트 - UPDATE SET) (0) | 2024.02.19 |
| Database. 2일차 - DML 기초(데이터 생성 - INSERT INTO) (0) | 2024.02.19 |
| Database. 1일차 - MySQL 데이터 타입 (2) | 2024.01.24 |
| Database. 1일차 - MySQL User 데이터 관리하기 (0) | 2024.01.24 |