SQL 조건분기, 윈도우 함수, 갱신, 검색조건 지정하기
- SELECT 구문 : 데이터베이스에서 데이터를 검색하는 SQL 구문으로, 원하는 컬럼을 선택하여 조회할 수 있음
SELECT [열 이름] FROM [테이블 이름] WHERE [조건] 형식으로 사용됨
- FROM 구 : 데이터를 가져올 테이블을 지정하는 구문
- WHERE 구 : 특정 조건을 만족하는 데이터만 필터링하는 구문
WHERE age = 50 → 나이가 50인 데이터만 조회
- 비교 연산자 : 데이터를 비교하여 조건을 설정할 때 사용됨
= (같음), != 또는 <> (같지 않음), >, <, >=, <= 등의 연산자가 있음
- AND / OR 연산자 : 여러 조건을 결합하는 논리 연산자
AND : 모든 조건을 만족하는 경우 선택 (교집합)
OR : 하나 이상의 조건을 만족하는 경우 선택 (합집합)
WHERE age = 50 AND check_yn = TRUE
- IN 연산자 : 여러 개의 값을 비교할 때 OR 조건을 간단하게 표현
WHERE name IN ('이영희', '박민준', '최서윤')
- GROUP BY 구 : 데이터를 그룹화하여 집계 함수(COUNT, SUM, AVG 등)를 적용하는 데 사용됨
SELECT check_yn, COUNT(*) FROM health GROUP BY check_yn;
- HAVING 구 : GROUP BY 결과에 추가 조건을 적용하는 구문
- ORDER BY 구 : 결과를 정렬하는 구문
ORDER BY age DESC → 나이 기준 내림차순 정렬
ORDER BY age ASC → 나이 기준 오름차순 정렬
- VIEW(뷰) : 복잡한 SELECT 구문을 저장하고 재사용할 수 있는 기능
CREATE VIEW NewView AS SELECT age, COUNT(*) FROM health GROUP BY age;
- SubQuery(서브쿼리) : 하나의 SQL 문 안에서 또 다른 SELECT 문을 실행하는 기능
SELECT gb_age, cnt FROM (SELECT age, COUNT(*) FROM health GROUP BY age) AS NewView;
- CASE 문 : SQL에서 조건 분기를 처리하는 방법
CASE WHEN age = 20 THEN '20대' WHEN age = 30 THEN '30대' ELSE '기타' END
- 윈도우 함수 : 개별 행에 대해 누적 값, 순위 등을 계산하는 함수.
COUNT(*) OVER (PARTITION BY age) → 나이별 개수 계산
RANK() OVER (ORDER BY age DESC) → 나이를 기준으로 순위 매기기
- INSERT : 새로운 데이터를 테이블에 삽입하는 SQL 구문
INSERT INTO health (name, age) VALUES ('김연준', 30);
- DELETE : 특정 데이터를 삭제하는 SQL 구문
DELETE FROM health WHERE name = '김연준';
- UPDATE : 기존 데이터를 수정하는 SQL 구문
UPDATE health SET age = 20 WHERE name = '서지우';
- NULL 값 검색 : 특정 필드에 값이 없는 경우를 검색하는 방법
IS NULL : 값이 NULL인 경우
IS NOT NULL : 값이 NULL이 아닌 경우
SELECT * FROM travel_reviews WHERE visit_year IS NULL;