SQL

SQL 기본

추운날_너를_기다리며 2024. 6. 19. 17:11

SQL 이란 데이터베이스와 대화를 하기 위한 언어입니다.

SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의를 'Query'라고 합니다.
데이터베이스에 요청을 할 때 Query 작성이라는 말을 사용합니다.

1) SQL 실습을 할 수 있는 프로그램은 DBeaver입니다.
DBeaver는 개발자가 SQL을 보다 손쉽게 사용할 수 있도록 도와주는 도구입니다.

2) 데이터베이스는 쉽게 말해 '데이터가 저장되어있는 큰 폴더' 입니다.
- 데이터베이스와 저장소, 데이터의 형태 등 여러가지 분류가 있습니다.
- 데이터베이스라는 폴더가 있고, 그 안에 테이블 이라는 파일이 있다고 생각하면 됩니다.

3) 테이블은 마치 '엑셀 파일'과 같이 생겼습니다.
- 테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 '컬럼' 혹은 '필드' 라고부릅니다.

4) 테이블 예시 목록
☑️ 테이블 목록
- food_orders : 음식 주문 정보 테이블
- payments : 결제 정보 테이블
- customers : 고객 정보 테이블
- ☑️ 테이블1 - food_orders
    - order_id : 주문 번호
    - customer_id : 고객 번호
    - restaurant_name : 음식점 이름
    - cuisine_type : 음식 종류
    - price : 음식 가격
    - quantity : 주문 수량
    - day_of_the_week : 주말 구분
    - rating : 음식점 평점
    - food_preparation_time : 음식 준비 시간 (분)
    - delivery_time : 음식 배달 시간 (분)
- ☑️ 테이블2 - payments
    - order_id : 주문 번호
    - pay_type 결제 수단
    - vat : 수수료
    - date : 결제 일자 (년-월-일)
    - time : 설제 시간 (시:분:초)
- ☑️ 테이블3 - customers
    - customer_id : 고객 번호
    - name : 고객 이름
    - email : 이메일 주소
    - gender : 성별
    - age : 나이
    
5) 기본 명령어 한 눈에 보기
SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용 됨
FROM : 데이터를 가져올 테이블을 특정해주는 문법
* : 모든 컬럼을 가져와준다는 의미

SQL은 '코드'가 아니라 데이터베이스에 요청을 하기 위한 '언어'이므로, 작성 전에 어떤 요청을 할 지 생각해봐야 합니다.
가장 기본적인 사항은 '어느 테이블에서 데이터를 가져올까'입니다.

6) 특정 테이블에 대한 모든 컬럼을 가져온다
select *
from 테이블

7) 테이블에서 원하는 컬럼만 선택하는 방법
select 컬럼1, 컬럼2
from 테이블

8) 컬럼에 별명(alias)를 주기
 - 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다.
   이럴 때 컬럼 명에 별명을 지정하여 변뎡할 수 있습니다.
 - 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다.
 1) 방법1 : 컬럼1 as 별명1
 2) 방법2 : 컬럼2 "별명2"
 
9) 별명 지을 때 유의사항
구분 | 영문, 언더바 | 특수문자, 한글
방법 | 별명만 적음  | "별명" 으로, 큰 따옴표 안에 적어줌
예시 | ord_no       | "ord no" "주문번호"

ex) 
select order_id as ord_no,
       restaurant_name "식당 이름"
from food_orders

10) 조건에 맞는 데이터로 필터링하기 (WHERE 이란)
- WHERE 절의 개념
  1) 데이터 중에 특정 조건을 필터링 해야할 떄가 있습니다.
     '나이가 21살인 사람' 과 같은 경우, 엑셀 혹은 다른 툴을 이용하여 필터링을 한 경험이 있으실 겁니다.
  2) SQL 의 'WHERE'문법을 이용하여 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
  3) WHERE의 구조
     select *
     from 테이블
     where 필터링 조건 (eg. 20살 이상)
     
  ex)   
     select *
     from customers
     where age=21
     
11) 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)

 

  1) between : A 와 B 사이
     - 기본 문법 : between a and b
     where age between 10 and 20
  2) IN : '포함'하는 조건 주기
     - 기본 문법 : in (A,B,C)
     age in (15, 21, 31)
     cuisine_type in ('korean', 'Japanese')
  3) like : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
     
     ex) 특정한 문자를 포함하는 경우
     - 기본 문법 : like ‘%포함문자%’
     restaurant_name like '%Next%'
     
     ex) 특정한 문자로 시작하는 경우
     - 기본 문법 : like '시작문자%’
     name like '김%'

 ex) 특정한 문자로 끝나는 경우
 - 기본 문법 : like '%시작문자'
 name like '%임'

12) 여러 개의 조건으로 필터링하기 (논리연산)
    1) WHERE 절에 여러 조건을 적용하기
       - 지금까지 배운 필터링 조건 여러개를 하나의 Query 문에서 적용할 수 있습니다.
       - ex) '나이가 20세 이상인', '여성 고객' 두가지 조건 적용
       - 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'입니다.

 

ex) 
select *
from food_orders
where cuisine_type='Korean' and price>=30000

ex)
select *
from payments
where pay_type='card' or vat<=0.2

13) 에러메시지에 당황하지 않고 스스로 문제 해결하기

14) HW.1주차 숙제
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기

SELECT restaurant_name, customer_id
FROM food_orders
WHERE food_preparation_time between 20 and 30
and cuisine_type = 'Korean'

'SQL' 카테고리의 다른 글

SQL Pivot table  (0) 2024.06.27
SQL subquery, join  (0) 2024.06.26
SQL substring, concat, if, case  (0) 2024.06.25
SQL 구조 마스터하기  (0) 2024.06.20