SQL 기본 구조

  • SELECT ▶︎ 선택하기
  • FROM ▶︎ 테이블 명
  • *(아스테리크) ▶︎ 전체 컬럼 불러오기
  • AS(alias) ▶︎ 별칭 : 테이블 조인할 때 많이 씀
  • DISTINCT ▶︎ 중복없이 컬럼을 조회하고 싶을 때 씀

[SQL 작성할 때 체크리스트]
✅ DB에 연결되어 있는 지 확인하기
✅ 어떤 DB를 사용할지 명시해주기 ex) use sparta;

  1. 모든 컬럼을 조회할 경우
    SELECT *
    FROM 테이블 이름
    ;

  2. 특정한 컬럼을 조회할 경우
    SELECT 컬럼이름, 컬럼이름...
    FROM 테이블 이름
    ;

  3. 특정 컬럼을 중복없이(=유일한) 조회할 경우
    SELECT DISTINCT 컬럼이름
    FROM 테이블 이름
    ;

✅ 체크포인트
중복 없이 조회가 필요한 경우
예시) 구매자 별 구매 내역, 구매 금액 등을 조회할 때
➡️ 중복된 구매자가 들어가면 안 됨
➡️ 구매자 이름으로 그루핑 할 예정
➡️ DISTINCT를 써야 함

"중복 없이" 라는 의미를 잘 생각하면서 필요할 때 써야한다.
실무에서는 "'중복 없이' 조회해주세요." 라는 말을 직접적으로 안하기 때문에
필요한 상황인지 판단하는 것이 중요하다.

SQL의 조건문 WHERE

  • 테이블의 모든 데이터를 가져오고 싶지 않을 때 조건문을 사용함

ex) 성별이 여자인 사람만 조회하기
SELECT *
FROM Basment_data
WHERE sex='F'

✅ 체크포인트
➡️ 총 몇개의 Row가 조회됐는지는 DBeaver 하단에 나와있다.
➡️ 하나씩 세지 않아도 된다.

SQL의 또 다른 조건문 CASE WHEN ...THEN

  • 더 많은 조건에 따라 데이터를 구분하고 싶을 때 사용함
  • Row 에 별칭을 붙여주고 싶을 때 사용함

ex) 성별이 여자일 땐 'FM' 남성일 땐 'M' 으로 불러오기
SELECT *
CASE WHEN sex = 'F' THEN 'FM'
ELSE 'M' END AS 'c.sex'
FROM basement_customers

조건을 쓸 때 필요한 연산자

[모르는 것만 추가 정리]

  • != <> = 같지 않다
  • NOT,! = ~가 아닌
  • IS NULL = 비어있는 값
  • IS NOT NULL = 비어있지 않은 값

✅ 체크포인트
➡️ null 이란 공란이란 의미가 아니라 한 번도 데이터에 손이 가지 않아서 정의되지 않은 데이터를 의미한다. 비어있는 문자 != null 을 유념하면서 쓰자
➡️ 비어있는 값이더라도 [NULL] 로 표기 되어있지 않으면 빈 글자(Empty String) 이거나 비어있는 숫자 값 일 수 있다.

✅ 문자 데이터일때 <> 0 을 쓰면 안되는 이유
➡️ 숫자 데이터일 때 0의 값을 처리할 수가 있고, 문자 데이터일 때는 데이터의 사이즈로 비교해서 값이 출력되기 때문에 어떤 의도를 가지고 <> 0을 썼는지 알 수가 없다.
➡️ 그래서 데이터 값이 무엇으로 입력되어 있는 지 더블 체크는 필수

➕ 내가 자주 헷갈리는 연산자
AND = 교집합
OR = 합집합

결과 값 정렬하기 ORDER BY

  • ORDER BY 의 기본은 오름차순
  • 맨 앞의 정렬 값은 불변, 이후 컬럼에 같은 값이 있을 때 뒤에 있는 조건이 정렬 됨
  • Ascending : 오름차순 (약자:ASC)
  • Descending : 내림차순 (약자: DESC)

✅ 체크 포인트
➡️ORDER BY, GROUP BY 쓸 때 컬럼명으로 써야 한다.
➡️실무에서 몇 백개, 몇 만개의 데이터를 처리할 때 컬럼의 숫자를 하나씩 셀 수 없기 때문에 원하는 컬럼 명을 적어야 정확한 값을 얻을 수 있다.

오늘의 라이브세션 인사이트

⭐️ 제일 쉬운 방법을 꾸준히 생각해서 정답을 찾아가는 것이 중요
⭐️ 쉬운 기초 문제라도 많이 풀어서 바로 생각 날 수 있게 머리에 집어 넣는 것이 중요

profile
공부를 위해 기록하는 공간

0개의 댓글