Programming Language

1-1. 데이터베이스, SQL 기초

wakelight23 2024. 10. 8. 22:54

SQL...? (Structured Query Language)

  데이터베이스와 대화를 하기 위한 언어

  데이터베이스에 요청을 하는 '질의' = Query

 

데이터베이스 (DataBase)

● 파일 탐색기(WindowOS 폴더)로 비유했을 때,

   - 데이터베이스(DB) = 폴더(Folder)

   - 테이블(TABLE) = 파일(File)

 

  테이블 (TABLE)

 - 각 열을 칼럼(COLUMN), 혹은 필드(FIELD)

   (즉, 표에서 분류 아래의 정보들)

 

TABLE1 (고객정보)

  고객번호 이름 성별 나이
1 1001 홍길동 20
2 1002 김지우 24

                                                  => COLUMN or FIELD

 

TABLE2 (상품정보)

  상품번호 상품명 수량
1 2001 독서대 17
2 2002 책갈피 13

 

테이블 목록 : 고객정보, 상품정보

TABLE1 - 고객정보

TABLE2 - 상품정보

SQL 명령문 - 1

  SELECT : 어떤 Query에서 데이터를 가져올까?

  - * : 모든 칼럼

  - 칼럼별로 가져올 수 있음

     예) SELECT 고객번호, 이름

  - from : ~에서 가져올게

     예) SELECT *
           from 고객정보 => from 다음에는 TABLE 입력

 

  WHERE : 특정 조건을 만족하는 데이터를 검색해야 할 때

  - 숫자 : WHERE 칼럼명 (number)

      예) WHERE 수량 17

  - 문자 : WHERE 컬럼명 '(char)' => 문자를 입력할 때는 ' '를 사용해야 함

  - 비교연산 : <, >, =, <=, >=, <>

  - BETWEEN : 값과 값 사이의 값을 필터링 

      예) WHERE 나이 BETWEEN 10 and 20

  - IN : 특정 값만을 필터링

     예) WHERE 나이 IN (20, 24) => 나이에 있는 데이터 중에서
          20, 24에 해당하는 값을 가져오기

  - LIKE : 문자, 숫자의 특정 부분만을 가지고 필터링

     예) WHERE 이름 LIKE '홍%' => %를 사용함으로

           어떤 문자, 숫자를 기준으로 필터링할지 결정

 

  추가적인 조건 : AND, OR, NOT

     - 두 가지 이상의 조건이 겹칠 때 : AND
         예) WHERE 나이 <= 20 AND 성별 = '남'

     - 두 가지 이상의 조건을 만족하는 것을 검색할 때 : OR

         예) WHERE 나이 <= 20 OR 성별 = '남'

     - 조건을 제외하고 검색할 때 : NOT

         예) WHERE NOT 성별 = '남'

 

SQL 명령문 - 2

  SQL에서 숫자 연산 사용 가능 : +, -, *, /

 

  계산 함수 : SUM, AVERAGE, COUNT, MIN, MAX

   (Excel과 함수가 비슷함)

   사용방법

 - SUM : 선택한 칼럼의 데이터 합. 예) SELECT SUM(칼럼)

 - AVG : 선택한 칼럼의 데이터 평균. 예) SELECT AVG(칼럼)

 - COUNT : 선택한 칼럼의 데이터의 수.
      → COUNT(1) : 테이블의 전체 데이터의 수 (COUNT(*)과 같은 의미)

      → 전체 값 말고 해당 칼럼의 값만을 구할 때 : DISTINCT

  - MIN : 선택한 칼럼의 최솟값. 예) SELECT MIN(칼럼)

  - MAX : 선택한 칼럼의 최댓값. 예) SELECT MAX(칼럼)

 

  GROUP BY : 선택한 칼럼 내에서 수식 함수 계산
   - 기본 형태 : SELECT 분류할 칼럼, SUM(칼럼) 

                        FROM 테이블

                        GROUP BY 분류할 칼럼

 

  ORDER BY : 분류된 칼럼의 내림차순 정렬 혹은 오름차순 정렬

   - 기본 형태 : SELECT 분류할 칼럼, SUM(칼럼) 

                        FROM 테이블

                        GROUP BY 분류할 칼럼

                        ORDER BY 정렬을 원하는 칼럼

 

원하는 데이터를 뽑고 계산하려면

TABLE : 상품정보

  상품번호 상품명 가격 수량
1 1001 장패드 17000 11
2 1002 키보드 59000 13
3 1003 스탠드 22000 14
4 1004 마우스 39000 12

  위의 데이터에서

'상품의 가격이 50000원 이하인 상품의 수량의 합'을 구한다고 했을 때,

 

ⅰ. SQL(Query)을 적기 전에 단계 별로 생각해 볼 것.

   1. 어떤 테이블에서 데이터를 찾을 것인지

   2. 어떤 칼럼(열)을 사용할 것인지

   3. 어떤 조건을 지정해야 할지

   4. 어떤 함수를 사용할 것인지

   

 ⅱ. 구문으로 만들어보기

   1. 어떤 테이블에서 데이터를 찾을 것인지 → FROM 상품정보

   2. 어떤 칼럼(열)을 사용할 것인지 → 수량

   3. 어떤 조건을 지정해야 할지 → WHERE 가격 < 50000

   4. 어떤 함수를 사용할 것인지 → SUM(수량)

 

 ⅲ. 전체 구문

SELECT SUM(수량)
FROM 상품정보
WHERE 가격 < 50000