select : 데이터를 가져오는 기본 명령어.
from : 데이터를 가져올 테이블을 특정해주는 문법.
* : 모든 컬럼을 가져와 준다는 의미.
ex)
select *
from ~~~~
- 필요한 항목만 뽑아서 사용하기.
- 예시
- 테이블 목록
- 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 : 나이
여기서 원하는 컬럼을 선택 할라면
select 컬럼1, 컬럼2
from 테이블
ex)
select order_id restaurant_name
from food_orders

- 컬럼에 별명 지어주기.
컬럼 옆쪽에 별명을 적어준다.
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
별명을 지을 때 주의할 점은
| 구분 | 영문, 언더바 | 특수문자, 한글 |
| 방법 | 별명만 적음 | "별명"으로, 큰 따옴표 안에 적어줌 |
| 예시 | ord_no | "ord no" "주문번호" |
보통 컬럼명이 너무 길고 영문이라 보기 어려울때 아래와 같이 지어준다.
select order_id as ord_no,
restaurant_name "식당이름"
from food_orders

[실습]을 통해 한번 더 복습 해보자.
1.주문 (food_orders) 테이블에서 order_id, price, quantity 를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기
select order_id ord_no,
price "가격",
quantiy "수량"
from food_orders

- 조건에 맞는 데이터로 필터링 하는 법( WHERE 이란)
where : 데이터 중에 특정 조건을 필터링 해야할 때가 있다. 여기서 이 문법을 사용하면 전체 데이터중 원하는 원하는 데이터만 필터링을 할 수 있다.
- WHERE 의 구조
select *
from 테이블
where 필터링 조선 (eg. 20살 이상)
ex)
select *
from customers
where age=21

*필터링은 숫자가 아닌 문자에도 사용 가능하다. 문자를 사용할땐 작은 따옴표( ' ) 를 사용한다.
[실습]을 통해 한번 더 복습 해보자.
- .주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기
select *
from food_orders
where cuisine_type = 'korean'

- 필터링을 할 때 유용한 표현. ( 비교연산, BETWEEN, IN, LIKE)
| 비교연산자 | 의미 | 예시 |
| = | 같다 | age=21 gender=’female’ |
| <> | 같지 않다 (다르다) | age><21 gender><'female' |
| > | 크다 | age>21 |
| >= | 크거나 같다 | age>=21 |
| < | 작다 | age<21 |
| <= | 작거나 같다 | age<=21 |
select *
from customers
where age<21
- BETWEEN : a 와 b 사이
- 기본 문법 : between a and b
- 예시 : 나이가 10과 20 사이
where age between 10 and 20
- IN : '포함' 하는 조건 주기
- 기본 문법 : in (A,B,C)
- 예시 : 나이가 15,20,30 세인 경우
age in (15, 20, 30)
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
- 특정한 문자로 시작하는 경우
- 기본 문법 : like '시작문자&'
- 예시 : '오' 로 시작하는 이름
name like '오%'
- 특정한 문자를 포한하는 경우
기본 문법 : like '%포함문자%'
예시 : 식당 이름에 'next' 를 포함하는 경우
restaurant_name like '%Next%'
- 특정한 문자로 끝나는 경우
- 기본 문법 : like'%끝나는문자'
- 예시 : '임' 으로 끝나는 이름
name like '%임'
[실습]을 통해 한번 더 복습 해보자.
1.고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기
select *
from customers
where age>=40

2. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기
select *
from food_orders
where restaurant_name like 'B%'

- 여러개의 조건으로 필터링 하기
- where 절에 여러 조건을 적용하기.
| 논리연산자 | 의미 | 예시 |
| AND | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
| OR | 또는 | age>20 or gender = 'female' |
| NOT | 아닌 | not gender = 'female' |
[실습]을 통해 한번 더 복습 해보자.
1.주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
select *
from food_orders
where cuisine_type='Korean' and price>=30000

2.결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회
select *
from payments
where pay_type='card' or vat<=0.2

이렇게 1주차 가 끝났다.
'부트캠프' 카테고리의 다른 글
| 3) 상품 주문이 들어왔으니 주문을 처리해봅시다! (0) | 2024.10.22 |
|---|---|
| 10.22 TIL (0) | 2024.10.22 |
| 사전캠프 퀘스트: 2) 이제 좀 벌었으니 flex 한 번 해볼까요?! (5) | 2024.10.21 |
| 사전캠프 퀘스트 : 1) 돈을 벌기 위해 일을 합시다! (0) | 2024.10.21 |
| 10.21 TIL (0) | 2024.10.21 |