DB 강의를 들으면서 DDL 과 DCL, DML 에 대한 개념을 배웠고, 간단한 데이터들을 추출해보는 연습을 하고 있다. 좀 특별(?)한 상황이지만 실제 데이터를 내가 원하는 기준에 맞게 조합하고 정렬해서 추출하되, 또 컬럼을 만들어서 새로운 이름을 만들어 준다던가, 추출한 컬럼들이 숫자일 경우 추가적인 연산을 하는 조건문도 있다는 것을 알게되었다.
간단한 예를 들어 공부해보도록 하자.
1.CREATE TABLE
CREATE TABLE korea_team (
player_name VARCHAR(50),
uniform_no INT,
club VARCHAR(50),
salary INT, -- 연봉 (단위: 만원)
height INT, -- 키 (cm)
weight INT -- 몸무게 (kg)
);
INSERT INTO korea_team (player_name, uniform_no, club, salary, height, weight) VALUES
('손흥민', 7, '토트넘', 1200000, 183, 78),
('김민재', 4, '바이에른 뮌헨', 900000, 190, 85),
('이강인', 18, '파리 생제르망', 600000, 173, 68),
('황희찬', 11, '울버햄튼', 700000, 177, 77),
('조규성', 9, 'FC 미트윌란', 400000, 188, 82);
2. 정수 연산에서 소수점 버림 /올림 하기
select 를 통해 추출한 컬럼의 결과들이 소수점이고, 이 결과들을 정수로 표현하고 싶을때, 목적에 맞게 버림, 반올림 문법을 사용하면 된다.
-- 버림 (FLOOR)
SELECT player_name, FLOOR(salary / 10000) AS salary_in_억
FROM korea_team;
-- 반올림 (ROUND)
SELECT player_name, ROUND(salary / 10000, 0) AS salary_in_억
FROM korea_team;
3. CASE 문 사용하기
select 를 통해 추출한 컬럼의 결과를 조건에 맞게 분기 처리할 수 있다. 숫자든 문자열이든 조건에 맞게 if else 처럼 작성할 수 있다.
선수의 키에 따라 유니폼 사이즈를 나누는 상황을 예로 들어볼 수 있다.
SELECT player_name, height,
CASE
WHEN height >= 185 THEN 'XL'
WHEN height >= 175 THEN 'L'
ELSE 'M'
END AS uniform_size
FROM korea_team;
4. CASE 문 여러개 사용하기
select 하여 추출할 컬럼이 두 개 이상이고, 각 각의 컬럼에 조건을 주어 분기 처리하고 싶다면, 아래와 같은 문법으로 CASE 문을 여러개 사용할 수 있다.
SELECT player_name,
CASE
WHEN salary >= 1000000 THEN '최고 연봉자'
WHEN salary >= 700000 THEN '주축 선수'
ELSE '유망주'
END AS salary_grade,
CASE
WHEN weight >= 85 THEN '파워형'
WHEN weight >= 75 THEN '밸런스형'
ELSE '스피드형'
END AS player_type
FROM korea_team;
5. 새로운 문자열 컬럼 추가
원하는 조건으로 데이터를 추출한 뒤에 추가적으로 컬럼을 생성하여 테이블에 없지만 원하는 특정 문자열을 추가하는 방법도 있다.
SELECT player_name,
CASE
WHEN player_name = '손흥민' THEN '캡틴 손'
WHEN player_name = '김민재' THEN '괴물 수비수'
WHEN player_name = '이강인' THEN '골든보이'
WHEN player_name = '황희찬' THEN '황소'
ELSE '미래의 에이스'
END AS nickname
FROM korea_team;'DB 공부' 카테고리의 다른 글
| [DB] DBeaver 를 이용하여 DB backup 파일 만들기 (1) | 2025.09.15 |
|---|