TIL

2024-10-08

ideas3624 2024. 10. 8. 18:17

1. 오늘 한일.

오늘은 스파르타코딩클럽 사이트에 있는 ' 엑셀보다 쉽고 빠른 SQL 1주차' 시정하고 공부했습니다.

 

2. 배운내용.

■ SQL 이란?
  - 구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다.
  - SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색을 할 수 있습니다.
  - 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있습니다. 

 

데이터베이스 개념?
  - 데이터베이스는 "데이터가 저장되어있는 큰 폴더"
  - 데이터베이스(폴더)가 있고 그안에 테이블(파일)이 있다고 생각하면된다.

 

  테이블과 칼럼이란?
  - 테이블은 마치 "엑셀 파일"과 같이 생겼다.
  - 테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 "컬럼" 혹은 "필드" 라고 부른다.
  - ex) 예시
    [테이블 목록]
    food_orders : 음식 주문 정보 테이블
      [컬럼 목록]
        - order_id : 주문 번호 
        - customer_id : 고객 번호
        - restaurant_name : 음식점 이름
        - cuisine_type : 음식 종류
        - price : 음식 가격
         (이하 생략)
    payments : 결제 정보 테이블
    custormers : 고객 정보 테이블

 

  SQL 기본구조를 익히고 데이터 조회를 시작하기 (SELECT, FROM)
  1) SELECT / FROM 문의 개념.

      - Query를 작성 하기전에 생각해 볼 사항
      - SQL은 "코드"가 아니라 데이터베이스에 요청 하기 위한 "언어" 이므로, 작성 전에 어떤 요청을 할지 생각해야함

      - 원하는 곳에서 데이터를 가져 오는 기본적인 명렁어이다.  (SELECT, FROM)
          (1) SELECT : 데이터를 가져오는 기본 명려어, 데이터를 조회하는 모든 Query에 사용됨.
          (2) FROM : 데이터를 가져올 테이블을 특정해주는 문법
          (3) * : 모든 컬럼을 가져와준다는 의미

 

2) 문법 예시

    select *
    form food_orders 
   (문법 해석 food_orders 에서 모든 데이터를 가져와라)

 

3) SELECT / FROM 실습 해보기. 
     - payments 테이블의 데이터 조회하기. (실습완료)


     - customers 테이블의 데이터 조회하기.  (실습완료)

 

필요한 항목만 뽑아서 사용해보자.
  1) 원하는 컬럼을 선택해보자.
    - 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능.
    - '*' 대신에, 필요한 컬럼을 적어보자.
    - ex) 예시
         select 컬럼1, 컬럼2
         form 테이블 
         (문법 해석 - 테이블에서 컬럼1, 컬럼2를 찾아주세요.)

  2) 컬럼에 별명 추가 
    - 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있다. 이럴 떄 컬럼 명에 별명을 지정하여 변경가능.
    - 별명 지정 방법  : 컬럼 옆쪽에 별명을 적어준다 (2가지 방법.)
    - ex) 예시
         - 방법1 : 컬럼1 as 별명1
         - 방법2 : 컬럼2 별명2
    - 별명을 지을 때 유의사항
       (1) 영문, 언더바 : 별명만 적음 (ard_no)
       (2) 특수문자, 한글 : "별명"으로, 큰 따옴표 안에 적어줌 ("ord no", "주문번호")

  3) [실습] 컬럼을 선택하고 별명 지정하기
     - 주문(food_orders) 테이블에서 order_id, price, quantity를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기.(실습완료)


     - 고객(customers) 테이블에서 name, email을 가져와서 이름, e-mail으로 별명 지어주기. (실습완료)


조건에 맞는 데이터로 필터링하기 (WHERE)   
  1) WHERE 질의 개념
     - SQL 의 'WHERE' 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
     - WHERE의 구조
         select *
         from 테이블
         where 필터링 조건 (age, 20살 이상 ) => shere age=21
         (문자형일 경우 '' 작은 따움표를 써야함.)
  2)[실습] WHERE을 이용한 필터링
     - 주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기 (실습완료)


     - 결제 (payments) 테이블에서 카드로 결제한 경우만 조히하기 (실습완료)



필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
   1) 같음, 큼, 작음 등의 조건을 지정해보기
      - 비교연산자 =(같다), <>(같지 않다), >(크다), >=(크거나같다), <(작다), <=(작거나 같다)
   2) 다양한 조건의 종류 (BETWEEN, IN, LIKE)
      - SQL 문법은 비교연산자와 더불어 다양한 조건의 필터를 제공한다.
          (1) BETWEEN : A 와 B 사이 
              (예시 : WHERE age BETWEEN 21 and 23  = 21살~ 23살 사이를 구해주세요)
          (2) IN : '포함'하는 조건 주기
              (예시 : WHERE age IN (21, 25, 27)  = 21살, 25살, 27살을 구해주세요.)
              (예시 : WHERE name in ('윤주아','정현준') = 윤주아, 정현준을 구해주세요.)
          (3) LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
              (예시 : WHERE name LIKE '김%' = 김으로 시작하는 이름을 구해주세요.)
              (특정한 문자로 시작하는 경우 : "이름%")
              (특정한 문자로 포함하는 경우 : "%이름%")
              (특정한 문자로 끝나는 경우 : "%이름")
   3)[실습] WHERE에 비교연산자 적용하기
      - 고객(customers) 테이블에서 나이가 40세 이상인 고객 조회하기. (실습완료)


      - 주문(food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기. (실습완료)


   4)[실습] WHERE에 다양한 조건을 적용하기
      - 주문 (food_orders)테이블에서 주문 금액이 20,000 ~ 30,000원 사이인 고객 조회하기. (실습완료)


      - 주문 (food_orders)테이블에서 B로 시작하는 상점의 주문 조회하기. (실습완료)



필터링 조건으로 여러개를 적용해야 할때 (논리연산)
   1) WHERE에 여러조건을 적용하기.
       - 지금까지 배운 필터링 조건 여러개를 하나의 Query문에서 적용할 수 있다.
       - 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'이다.
       - 논리연산 종류
           (1) AND : 그리고 (age>20 AND gender='female' -> 나이가 20세 이상이고, 여성)
           (2) OR : 또는 (age>20 or gender='female' -> 나이가 20세 이상이거나, 여성)
           (3) NOT : 아닌 (not gender='female' -> 여성이 아닌)
   2) [실습] 여러 조건을 적용하여 데이터 필터링하기
       - 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회 (실습완료)


       - 결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회 (실습완료)


1주차 과제
   1) 상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
       [지시사항]
         (1) 조회해야 할 컬럼 특정하기
         (2) '사이' 조건 : BETWEEN
         (3) 특정 조건 지정 : =
         (4) 복수의 조건 지정 : AND

 

3. 공부도 중 생긴 문제.

     강의 영상에서 FROM를 소문자로 사용해서 똑같이 타이핑 중 에러 발생.

        - 해결 : 대문자로 변환하니 에러는 사라짐. 

        - 검색 결과 : 대소문자를 구분하지 않지만 대부분의 데이터베이스 시스템에서는 대문자를 쓰는 게 권장된다. 

                             데이터 베이스의 시스템의 문법 규칙 중의 하나로, 대문자로 키어드를 작성하는 것이 일반적인

                              규칙이기 때문이다.

 

4, 결론.

   아직까지 어려운 부분이 없었고 재미있었습니다. 다음 공부할 부분이 기다려집니다.

'TIL' 카테고리의 다른 글

2024-10-15  (0) 2024.10.15
2024-10-14  (0) 2024.10.14
2024-10-11  (1) 2024.10.11
2024-10-10  (1) 2024.10.10
2024-10-07  (0) 2024.10.07