ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 첫 도전
    [스파르타코딩클럽]데이터분석 과정/TIL,WIL 2023. 12. 19. 22:30

    SQL이라는 말이 뭔가 다가가기 어려울 것 같았는데, 강의를 들으면서 컴활 공부할 때 사용했던 쿼리와 같다라는 것을 알게 되었다.

     

    SQL의 기본 구조는 select와 from

    칼럼에 별명 붙일려면 칼럼 as 별명이라는데 영문이랑 언더바는 as 안써도 되는거고 특수문자랑 한글은 as "" 형식이다.

     

    where 구문은 select from으로 찾은 많은 양의 데이터 중 내가 찾고자하는 조건을 거는 구문이다.

    예를 들어 음식 종류가 한식인 것을 찾으려면

    select *

    from food_orders

    where cusisne type = 'Korean'

     

    where 문에서는 '문자'라는 부분이 별명 붙이는 "문자"랑 다르다

     

    연산자도 배웠다. 연산자 역시 컴활 1급 준비하면서 봤던 친구들이다. 

    액세스에서는 like * 의 형식을 쓰는데, SQL에서는 like를 사용할 때 '시작문자%', '%포함문자%', '%시작문자'의 형태를 쓴다는 점에서 다르다.

     

    더 나아가서 숫자 연산 기호도 배웠다.

    sum,avg,count,max,min을 배웠다. 직관적인 개념이기도 하고, 알고 있는 개념이라 쉽게 받아들이고, 적용하기 쉬웠다. 

    내가 한 SQL구문이 오류가 나서 답안지와 비교해보니 대문자로 쓰고 있었다. 습관적으로 대문자로 쓰고 있는 내 모습을 알게 되었고 대문자를 사용하지 않으려고 오늘 배웠던 구문들을 복습하였다.

     

    조금 헷갈렸던 구문이 있다면 count이다. count는 갯수를 세는 구문이다. 모든 갯수를 셀 때는 count(1) 또는 count(*)이다.

    갯수를 세는 범위를 지정할 때는 distinct 를 사용한다. distinct라는 구문을 처음 써봤더니 자꾸 까먹고, where 구문을 쓰게 된다.

     

    기본 연산자를 배우고 나서 SQL을 진행하는 플로우를 배웠다.

    1. 어떤 테이블에서 데이터를 뽑을 것인가

    2. 어떤 컬럼을 이용할 것인가

    3. 어떤 조건을 지정해야 하는가

    4. 어떤 함수 (수식) 을 이용해야 하는가

     

    이 흐름을 과제인  "음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기"에 적용하니 보다 빠르게 SQL 구문을 작성할 수 있을 뿐만 아니라 작성하는 나도 빠르게 이해할 수 있었다.

    1. 어떤 테이블에서 데이터를 뽑을 것인가 : food_order 테이블을 사용하기

    2. 어떤 컬럼을 이용할 것인가 cusisen_type 칼럼 사용하기

    3. 어떤 조건을 지정해야 하는가 max(price)와 min(price), group by cusisen_type, order by min(price) desc

    4. 어떤 함수 (수식) 을 이용해야 하는가 max와 min을 사용하기

     

    여기에서 group by는 범위, 조건을 걸어주는 구문으로 where 구문과 비슷하지만, group by는 where과 달리 카테고리를 지정할 수 있다는 점에서 간편하다.

     

    order by는 정렬을 뜻한다. 오름차순은 order by 정렬을 원하는 칼럼, 내림차순은 ordery by 정렬을 원하는 칼럼 desc

     

    오늘 배웠던 내용을 복습하고자 프로그래머스 스쿨에서 동물의 아이디와 이름을 찾는 문제를 풀어보았다. 문제는 아래와 같다.

    [ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블 입니다. 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요.]

     

    이 문제를 오늘 배웠던 플로우에 맞춰 풀어보았다.

    1. 어떤 테이블에서 데이터를 뽑을 것인가 : ANIMAL_INS 테이블

    2. 어떤 컬럼을 이용할 것인가 : NAME과 ANMIAL_ID

    3. 어떤 조건을 지정해야 하는가 : ORDER BY ANIMAL_ID (오름차순, 내림차순이라는 말이 없어서 생략)

    4. 어떤 함수 (수식) 을 이용해야 하는가 ORDER BY

     

    그 결과로 아래와 같은 식이 만들어졌고, 

    SELECT ANIMAL_ID, NAME
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID

     

    출력 결과 문제가 원하는 답을 만들 수 있었다.

Designed by Tistory.