SQL 기본 구조
[SQL 작성할 때 체크리스트]
✅ DB에 연결되어 있는 지 확인하기
✅ 어떤 DB를 사용할지 명시해주기 ex) use sparta;
모든 컬럼을 조회할 경우
SELECT *
FROM 테이블 이름
;
특정한 컬럼을 조회할 경우
SELECT 컬럼이름, 컬럼이름...
FROM 테이블 이름
;
특정 컬럼을 중복없이(=유일한) 조회할 경우
SELECT DISTINCT 컬럼이름
FROM 테이블 이름
;
✅ 체크포인트
중복 없이 조회가 필요한 경우
예시) 구매자 별 구매 내역, 구매 금액 등을 조회할 때
➡️ 중복된 구매자가 들어가면 안 됨
➡️ 구매자 이름으로 그루핑 할 예정
➡️ DISTINCT를 써야 함
"중복 없이" 라는 의미를 잘 생각하면서 필요할 때 써야한다.
실무에서는 "'중복 없이' 조회해주세요." 라는 말을 직접적으로 안하기 때문에
필요한 상황인지 판단하는 것이 중요하다.
SQL의 조건문 WHERE
ex) 성별이 여자인 사람만 조회하기
SELECT *
FROM Basment_data
WHERE sex='F'
✅ 체크포인트
➡️ 총 몇개의 Row가 조회됐는지는 DBeaver 하단에 나와있다.
➡️ 하나씩 세지 않아도 된다.
SQL의 또 다른 조건문 CASE WHEN ...THEN
ex) 성별이 여자일 땐 'FM' 남성일 땐 'M' 으로 불러오기
SELECT *
CASE WHEN sex = 'F' THEN 'FM'
ELSE 'M' END AS 'c.sex'
FROM basement_customers
조건을 쓸 때 필요한 연산자
[모르는 것만 추가 정리]
✅ 체크포인트
➡️ null 이란 공란이란 의미가 아니라 한 번도 데이터에 손이 가지 않아서 정의되지 않은 데이터를 의미한다. 비어있는 문자 != null 을 유념하면서 쓰자
➡️ 비어있는 값이더라도 [NULL] 로 표기 되어있지 않으면 빈 글자(Empty String) 이거나 비어있는 숫자 값 일 수 있다.
✅ 문자 데이터일때 <> 0 을 쓰면 안되는 이유
➡️ 숫자 데이터일 때 0의 값을 처리할 수가 있고, 문자 데이터일 때는 데이터의 사이즈로 비교해서 값이 출력되기 때문에 어떤 의도를 가지고 <> 0을 썼는지 알 수가 없다.
➡️ 그래서 데이터 값이 무엇으로 입력되어 있는 지 더블 체크는 필수
➕ 내가 자주 헷갈리는 연산자
AND = 교집합
OR = 합집합
결과 값 정렬하기 ORDER BY
✅ 체크 포인트
➡️ORDER BY, GROUP BY 쓸 때 컬럼명으로 써야 한다.
➡️실무에서 몇 백개, 몇 만개의 데이터를 처리할 때 컬럼의 숫자를 하나씩 셀 수 없기 때문에 원하는 컬럼 명을 적어야 정확한 값을 얻을 수 있다.
오늘의 라이브세션 인사이트
⭐️ 제일 쉬운 방법을 꾸준히 생각해서 정답을 찾아가는 것이 중요
⭐️ 쉬운 기초 문제라도 많이 풀어서 바로 생각 날 수 있게 머리에 집어 넣는 것이 중요