12.05(목) 본캠프 9일차 기록

Laña·2024년 12월 5일
0
post-thumbnail

오늘 있었던 일(?)

오늘은 아티클 스터디가 없는 대신 팀 프로젝트를 마무리 하였다.
어제 발표 자료 템플릿이 날아가서 급하게 다시 하는 불상사가 있긴 했지만...
그래도 기존에 미리 서로 코드랑 실행 결과 공유하면서 토의하고 정리를 미리 해두어서 발표 자료를 크게 고민하지 않고 금방 만들 수 있었다고 생각했다.
나는 구글 슬라이드에서 각자 파트를 맡아 PPT를 제작하려했지만, 우리 코드를 정리해준 팀원이 자료를 직접 만들겠다고 먼저 자원해주셨다.
중간에 막히는 부분이 있으면 공유해서 의견을 나누기도 하고 컨펌도 같이 진행하며 자료를 완성하였다.
덕분에 오늘은 코드카타 풀이와 강의를 보고 라이브때 못해본 실습을 해볼 수 있었다.
실습 중간 막히는 부분도 있었는데, 오타가 나는 것이 대부분이라 다시 고쳐서 실행해볼 수 있었다.


오늘 배운 것 요약

SQL 2회차 강의 - 복습

명명 규칙, 주석, NULL

명명 규칙
  1. 간결하게 의미를 담아
  2. 일관된 형식 유지 - 소문자 사용(⭐대문자는 예약어일 가능성이 높아서) / 스네이크_케이스(snake_case)
  3. 예약어와 공백 피하기 - 공백 대신 _ 밑줄 사용
  4. 약어 사용 최소화 - 의미 전달이 어려울 수 있음
주석
  • 코드의 목적 설명, 실행 방지, 가독성 증가를 위해 사용
    방법!
  1. -,#으로 시작 한줄만 가능
  2. /* */ 안에 여러줄 설명 추가, 실행 방지용 -> 코드 블록 감싸기
NULL

NULL IS NOT (숫자)0, (빈문자열)"" 같지 않음!!
NULL = , != 사용 불가 X
NULL -> 어떤 연산을 해도 항상 NULL


데이터 조회

데이터 선택의 시작- SELECT - FROM
  • SELECT : 원하는 데이터 조회 + * => 모두 조회
  • FROM : 데이터를 조회할 테이블 지정
    +각 구문의 끝은 세미콜론으로 마무리;
중복제거 - DISTINCT
  • SELECT절에서만 사용가능!
  • 중복여부? SELECT 절에서 지정된 열 기준
갯수제한 - LIMIT
  • 원하는 부분만 제한적으로 가져오기

  • OFFSET : 건너뛸 행의 수 = OFFSET+1 번째 행
    예) LIMIT [0, ]1 -> 0~1번째까지
    예) LIMIT 2,5 -> 2개 건너뛴 3~5번째 까지

  • COUNT : 그 이후에 가져올 행의 수

데이터 필터링 - WHERE

  • 조건절과 같은 역할
    예) 경기에 사는 사람들만 보고 싶을 때
    WHERE addr='경기'

  • BETWEEN : 특정 범위 내에서 데이터 조회
    예) 10 에서 20 사이의 나이
    WHERE age BETWEEN 10 AND 20

  • IN, NOT IN : 여러 값 비교하기
    예) 빨간색일때만
    WHERE color IN('red')
    예) 빨간색을 제외하고
    WHERE color NOT IN('red')

  • LIKE와일드카드(%,_) : 패턴 매칭
    예) 이름 앞에 '이보'가 들어가 있는 사람
    WHERE name LIKE '이보%'

  • AND, OR : 여러 조건들을 조합
    예) 빵과 고기가 둘다 들어가 있는 음식
    WHERE main_dish LIKE 'bread' AND main_dish LIKE 'meat'
    예) 빵이나 고기 둘 중 하나가 들어가 있는 음식
    WHERE main_dish LIKE 'bread' OR main_dish LIKE 'meat'

  • <>, !=(아닌것으로 동일하게 사용가능) : 조건문에서 사용할 수 있는 연산자
    예) 여자가 아닌 사람들
    WHERE gender !=(<>) 'female'

  • 여러 조건 조합시 (괄호)사용하기! - 수학이랑 같은 개념!!

  • NULL, NOT NULL : 값이 없는 데이터 처리
    예) 데이터가 NULL 인경우
    WHERE age IS NULL
    예) 데이터가 NULL이 아닌 경우
    WHERE age IS NOT NULL


데이터 분류

CASE WHEN 기본구문
CASE WHEN age >= 65 THEN '노인'
	 WHEN age >= 20 THEN '성인'
     WHEN age >= 8 THEN '소인'
     ELSE '영유아' END age_group

-> 1행: 65세 이상 일때는 노인, 아닐땐 다음 행
-> 2행: 20세 이상 일때는 성인, 아닐땐 다음 행
-> 3행: 8세 이상 일때는 소인, 아닐땐 다음 행
-> 4행: 1,2,3행에 부합하지 않을 때 영유아. age_group 생성

다양한 연산자, 조건문 추가 가능!!


SQL 3회차 강의 - 복습

집계함수 - GROUP BY , HAVING

HAVINGGROUP BY의 조건절로,
그룹별로 묶은 후 그 그룹에 조건을 부여하는 방식!!

  • 예) 음식 종류(cuisine_type)중에서의 한식
    GROUP BY cuisine_type
    HAVING cuisine_type='Korean'

결과정렬 - ORDER BY

  1. 컬럼명을 사용한 정렬
  • 예) 성별을 기준으로 오름차순
SELECT name,
		age,
        gender
FROM customers
ORDER BY gender ASC; -- ASC는 생략 가능(default값)
  1. 컬럼번호를 사용한 정렬
  • 예) 성별을 기준으로 오름차순
SELECT name,
		age,
        gender
FROM customers
ORDER BY 3 ASC; -- gender가 3번째 행에 있어서 3
  1. RAND()함수를 사용한 데이터 샘플링
  • 무작위로 10명 선정 - 고객 테이블
SELECT *
FROM customers
ORDER BY RAND() -- RAND()가 무작위를 뜻하는 RANDOM의 약자
LIMIT 10;
profile
SQL, Python, Code Kata

0개의 댓글